[webkit-changes] [WebKit/WebKit] 0474d6: Factor PDF JS evaluation out of PDFPlugin

Tim Horton noreply at github.com
Fri Jan 5 14:36:04 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0474d6003056297ae8a98eff1172eae36be468c7
      https://github.com/WebKit/WebKit/commit/0474d6003056297ae8a98eff1172eae36be468c7
  Author: Tim Horton <timothy_horton at apple.com>
  Date:   2024-01-05 (Fri, 05 Jan 2024)

  Changed paths:
    A LayoutTests/compositing/plugins/pdf/pdf-plugin-printing-expected.txt
    A LayoutTests/compositing/plugins/pdf/pdf-plugin-printing.html
    A LayoutTests/resources/auto-print.pdf
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
    A Source/WebKit/WebProcess/Plugins/PDF/PDFPluginScriptEvaluator.mm
    A Source/WebKit/WebProcess/Plugins/PDF/PDFScriptEvaluator.h
    A Source/WebKit/WebProcess/Plugins/PDF/PDFScriptEvaluator.mm
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteHost.mm
    M Tools/MiniBrowser/mac/WK2BrowserWindowController.m

  Log Message:
  -----------
  Factor PDF JS evaluation out of PDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=267091
rdar://118550726

Reviewed by Simon Fraser.

Separate PDF JS evaluation code (for auto-printing) out of PDFPlugin.

By virtue of doing this, also enable it in UnifiedPDFPlugin.

And add a test! And make window.print work in MiniBrowser!

* LayoutTests/compositing/plugins/pdf/pdf-plugin-printing-expected.txt: Added.
* LayoutTests/compositing/plugins/pdf/pdf-plugin-printing.html: Added.
* LayoutTests/resources/auto-print.pdf: Added.
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::appendValuesInPDFNameSubtreeToVector): Deleted.
(WebKit::getAllValuesInPDFNameTree): Deleted.
(WebKit::getAllScriptsInPDFDocument): Deleted.
(WebKit::jsPDFDocInitialize): Deleted.
(WebKit::jsPDFDocFinalize): Deleted.
(WebKit::PDFPlugin::jsPDFDocClass): Deleted.
(WebKit::PDFPlugin::jsPDFDocPrint): Deleted.
(WebKit::PDFPlugin::makeJSPDFDoc): Deleted.
(WebKit::PDFPlugin::tryRunScriptsInPDFDocument): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
(WebKit::PDFPluginBase::tryRunScriptsInPDFDocument): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::tryRunScriptsInPDFDocument):
(WebKit::PDFPluginBase::print):
Avoid double-running PDF scripts with a "did run" bit (this appears to be broken in shipping Safari).

* Source/WebKit/WebProcess/Plugins/PDF/PDFScriptEvaluator.h: Added.
(WebKit::PDFScriptEvaluator::PDFScriptEvaluator):
(WebKit::PDFScriptEvaluator::create):
* Source/WebKit/WebProcess/Plugins/PDF/PDFScriptEvaluator.mm: Added.
(WebKit::appendValuesInPDFNameSubtreeToVector):
(WebKit::getAllValuesInPDFNameTree):
(WebKit::getAllScriptsInPDFDocument):
(WebKit::jsPDFDocInitialize):
(WebKit::jsPDFDocFinalize):
(WebKit::PDFScriptEvaluator::jsPDFDocClass):
(WebKit::PDFScriptEvaluator::jsPDFDocPrint):
(WebKit::PDFScriptEvaluator::runScripts):
(WebKit::PDFScriptEvaluator::print):
Factor this code out of PDFPlugin.

* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteHost.mm:
(WebKit::PlatformCALayerRemoteHost::create):
Unified sources fixes.

* Tools/MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController _webView:printFrame:pdfFirstPageSize:completionHandler:]):
Hook up the printing UI delegate in MiniBrowser.

Canonical link: https://commits.webkit.org/272706@main




More information about the webkit-changes mailing list