[webkit-changes] [WebKit/WebKit] 7760f9: Define ENABLE_PDF_PLUGIN for platforms that will u...

Simon Fraser noreply at github.com
Fri Oct 6 11:05:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7760f95ca8a630f35038e305168a45c2c415cbd4
      https://github.com/WebKit/WebKit/commit/7760f95ca8a630f35038e305168a45c2c415cbd4
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-10-06 (Fri, 06 Oct 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebCore/html/HTMLPlugInImageElement.cpp
    M Source/WebCore/loader/DocumentWriter.cpp
    M Source/WebCore/loader/LocalFrameLoaderClient.h
    M Source/WebCore/loader/SubframeLoader.cpp
    M Source/WebCore/platform/cocoa/MIMETypeRegistryCocoa.mm
    M Source/WebKit/Shared/mac/PDFContextMenu.h
    M Source/WebKit/Shared/mac/PDFContextMenuItem.serialization.in
    M Source/WebKit/UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm
    M Source/WebKit/UIProcess/PDF/WKPDFHUDView.h
    M Source/WebKit/UIProcess/PDF/WKPDFHUDView.mm
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFAnnotationTextWidgetDetails.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFLayerControllerSPI.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginAnnotation.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/Plugins/PluginView.h
    M Source/WebKit/WebProcess/Plugins/WebPluginInfoProvider.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/FindController.cpp
    M Source/WebKit/WebProcess/WebPage/FindController.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm

  Log Message:
  -----------
  Define ENABLE_PDF_PLUGIN for platforms that will use a PDFPluginBase-derived plugin
https://bugs.webkit.org/show_bug.cgi?id=262758
rdar://116557962

Reviewed by Tim Horton.

This PR defines `ENABLE_PDF_PLUGIN` when either ENABLE(LEGACY_PDFKIT_PLUGIN) or ENABLE(UNIFIED_PDF)
are true, and uses it to enable code that will make the UnifiedPDFPlugin available on iOS-family
platforms under a runtime switch.

Most of the changes are simply ENABLE(LEGACY_PDFKIT_PLUGIN) -> ENABLE(PDF_PLUGIN). In some places
for macOS we can use ENABLE(PDF_HUD). Other changes are noted below.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Have PDFPluginEnabled be off by default on
iOS now that code consults it.
* Source/WTF/wtf/PlatformEnableCocoa.h: Define ENABLE_PDF_HUD based on ENABLE(PDF_PLUGIN) && PLATFORM(MAC)
* Source/WebCore/html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::shouldBypassCSPForPDFPlugin const):
* Source/WebCore/loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument): Change code that used to be just `#if PLATFORM(IOS_FAMILY)`
to runtime-test shouldUsePDFPlugin().
* Source/WebCore/loader/LocalFrameLoaderClient.h:
* Source/WebCore/loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::loadPlugin): Instead of the iOS #ifdef, we can consult the
`useImageDocumentForSubframePDF()` setting which is only true for iOS.
* Source/WebCore/platform/cocoa/MIMETypeRegistryCocoa.mm:
(WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
* Source/WebKit/Shared/mac/PDFContextMenu.h:
* Source/WebKit/Shared/mac/PDFContextMenuItem.serialization.in:
* Source/WebKit/UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
* Source/WebKit/UIProcess/PDF/WKPDFHUDView.h:
* Source/WebKit/UIProcess/PDF/WKPDFHUDView.mm:
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::resetStateAfterProcessTermination):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:
* Source/WebKit/WebProcess/Plugins/PDF/PDFAnnotationTextWidgetDetails.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h: Make a static `pdfKitLayerControllerIsAvailable()` here.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfKitLayerControllerIsAvailable):
(WebKit::PDFPlugin::pluginInfo): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h: Move `PDFPlugin::pluginInfo()` here.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::pluginInfo):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::createPlugin): Create a UnifiedPDFPlugin or PDFPlugin or release assert if neither.
(WebKit::PluginView::platformLayer const):
(WebKit::PluginView::scroll):
(WebKit::PluginView::scrollPositionForTesting const):
(WebKit::PluginView::horizontalScrollbar):
(WebKit::PluginView::verticalScrollbar):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::pluginInfoVector):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::hasPlugInView const): Let's avoid the "not" in the #idef here and below.
(WebKit::WebLocalFrameLoaderClient::setMainDocumentError):
(WebKit::WebLocalFrameLoaderClient::committedLoad):
(WebKit::WebLocalFrameLoaderClient::finishedLoading):
(WebKit::WebLocalFrameLoaderClient::createPlugin):
(WebKit::WebLocalFrameLoaderClient::redirectDataToPlugin):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::shouldUsePDFPlugin const): Moved here from the Mac file.
(WebKit::WebPage::performDictionaryLookupAtLocation):
* Source/WebKit/WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::countStringMatches):
(WebKit::FindController::updateFindUIAfterPageScroll):
(WebKit::FindController::findString):
(WebKit::FindController::hideFindUI):
* Source/WebKit/WebProcess/WebPage/FindController.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::editorState const):
(WebKit::WebPage::executeEditingCommand):
(WebKit::WebPage::isEditingCommandEnabled):
(WebKit::WebPage::textZoomFactor const):
(WebKit::WebPage::setTextZoomFactor):
(WebKit::WebPage::pageZoomFactor const):
(WebKit::WebPage::setPageZoomFactor):
(WebKit::WebPage::setPageAndTextZoomFactors):
(WebKit::WebPage::scalePage):
(WebKit::WebPage::totalScaleFactor const):
(WebKit::snapshotImageOptions):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::setTopContentInset):
(WebKit::WebPage::getMainResourceDataOfFrame):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
(WebKit::WebPage::shouldUsePDFPlugin const): Deleted.

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




More information about the webkit-changes mailing list