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