Title: [289630] trunk/Source/WebCore
Revision
289630
Author
[email protected]
Date
2022-02-11 09:53:27 -0800 (Fri, 11 Feb 2022)

Log Message

Unreviewed followup: address Youenn's feedback for PDFDocument.

* html/PDFDocument.cpp:
(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):
(WebCore::PDFDocument::injectContentScript):
* html/PDFDocument.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (289629 => 289630)


--- trunk/Source/WebCore/ChangeLog	2022-02-11 17:47:53 UTC (rev 289629)
+++ trunk/Source/WebCore/ChangeLog	2022-02-11 17:53:27 UTC (rev 289630)
@@ -1,3 +1,15 @@
+2022-02-11  Tim Nguyen  <[email protected]>
+
+        Unreviewed followup: address Youenn's feedback for PDFDocument.
+
+        * html/PDFDocument.cpp:
+        (WebCore::PDFDocumentEventListener::handleEvent):
+        (WebCore::PDFDocument::createDocumentStructure):
+        (WebCore::PDFDocument::updateDuringParsing):
+        (WebCore::PDFDocument::finishedParsing):
+        (WebCore::PDFDocument::injectContentScript):
+        * html/PDFDocument.h:
+
 2022-02-11  Youenn Fablet  <[email protected]>
 
         Support remote video frames in WebRTC video pipeline

Modified: trunk/Source/WebCore/html/PDFDocument.cpp (289629 => 289630)


--- trunk/Source/WebCore/html/PDFDocument.cpp	2022-02-11 17:47:53 UTC (rev 289629)
+++ trunk/Source/WebCore/html/PDFDocument.cpp	2022-02-11 17:53:27 UTC (rev 289630)
@@ -107,8 +107,12 @@
 
 void PDFDocumentEventListener::handleEvent(ScriptExecutionContext&, Event& event)
 {
-    if (event.type() == eventNames().loadEvent)
-        m_document->injectContentScript();
+    auto* iframe = dynamicDowncast<HTMLIFrameElement>(event.target());
+    ASSERT(iframe, "Should have event target");
+
+    if (event.type() == eventNames().loadEvent) {
+        m_document->injectContentScript(*iframe->contentDocument());
+    }
 }
 
 bool PDFDocumentEventListener::operator==(const EventListener& other) const
@@ -150,29 +154,27 @@
     auto listener = PDFDocumentEventListener::create(*this);
     iframe->addEventListener("load", listener.copyRef(), false);
 
-    m_iFrame = iframe.ptr();
+    m_viewerRendered = true;
 }
 
 void PDFDocument::updateDuringParsing()
 {
-    if (!m_iFrame)
+    if (!m_viewerRendered)
         createDocumentStructure();
 }
 
 void PDFDocument::finishedParsing()
 {
-    ASSERT(m_iFrame);
+    ASSERT(m_viewerRendered);
 }
 
-void PDFDocument::injectContentScript()
+void PDFDocument::injectContentScript(Document& contentDocument)
 {
-    ASSERT(m_iFrame);
-    auto script = HTMLScriptElement::create(scriptTag, *this, false, false);
+    ASSERT(contentDocument.body());
+
+    auto script = HTMLScriptElement::create(scriptTag, contentDocument, false, false);
     script->setAttribute(srcAttr, "webkit-pdfjs-viewer://pdfjs/extras/content-script.js");
-
-    auto* document = m_iFrame->contentDocument();
-    ASSERT(document && document->body());
-    document->body()->appendChild(script);
+    contentDocument.body()->appendChild(script);
 }
 
 }

Modified: trunk/Source/WebCore/html/PDFDocument.h (289629 => 289630)


--- trunk/Source/WebCore/html/PDFDocument.h	2022-02-11 17:47:53 UTC (rev 289629)
+++ trunk/Source/WebCore/html/PDFDocument.h	2022-02-11 17:53:27 UTC (rev 289630)
@@ -40,7 +40,7 @@
 
     void updateDuringParsing();
     void finishedParsing();
-    void injectContentScript();
+    void injectContentScript(Document& contentDocument);
 
 private:
     PDFDocument(Frame&, const URL&);
@@ -48,7 +48,7 @@
     Ref<DocumentParser> createParser() override;
 
     void createDocumentStructure();
-    RefPtr<HTMLIFrameElement> m_iFrame;
+    bool m_viewerRendered { false };
 };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to