[webkit-changes] [WebKit/WebKit] b7c083: Introduce UnifiedPDFPlugin

Simon Fraser noreply at github.com
Tue Sep 26 13:41:17 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b7c083b8e5ef3f450f1ae580f43cdd97fbeb80f1
      https://github.com/WebKit/WebKit/commit/b7c083b8e5ef3f450f1ae580f43cdd97fbeb80f1
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-09-26 (Tue, 26 Sep 2023)

  Changed paths:
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h
    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/UnifiedPDF/UnifiedPDFPlugin.h
    A Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/Plugins/PluginView.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm

  Log Message:
  -----------
  Introduce UnifiedPDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=262095
rdar://116029997

Reviewed by Tim Horton.

Flesh out the interface of PDFPluginBase, which is a pure virtual base class for the
old PDFPlugin and the new UnifiedPDFPlugin. These may get renamed later.

Move code which we are sure to share to PDFPluginBase, and add stubs in UnifiedPDFPlugin.
This is all mechanical, other than some minor cleanup the the `destroy()` function.

PDFPlugin inherits `deviceScaleFactor()` from ScrollableArea, and since UnifiedPDFPlugin
may not end up being a ScrollableArea we can avoid multiple inheritance issues by just
changing code in PluginView to avoid calling it on the plugin.

PluginView creates a UnifiedPDFPlugin based on the runtime flag now.

Fix Unified sources fallout.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
(isType):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::setView):
(WebKit::PDFPlugin::teardown):
(WebKit::PDFPlugin::destroy): Deleted.
(WebKit::PDFPlugin::isFullFramePlugin const): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
(WebKit::PDFPluginBase::isUnifiedPDFPlugin const):
(WebKit::PDFPluginBase::isLegacyPDFPlugin const):
(WebKit::PDFPluginBase::willDetachRenderer):
(WebKit::PDFPluginBase::isComposited const):
(WebKit::PDFPluginBase::geometryDidChange):
(WebKit::PDFPluginBase::visibilityDidChange):
(WebKit::PDFPluginBase::contentsScaleFactorChanged):
(WebKit::PDFPluginBase::updateControlTints):
(WebKit::PDFPluginBase::wantsWheelEvents const):
(WebKit::PDFPluginBase::isBeingDestroyed const):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::PDFPluginBase):
(WebKit::PDFPluginBase::setView):
(WebKit::PDFPluginBase::destroy):
(WebKit::PDFPluginBase::isFullFramePlugin const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h: Added.
(isType):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm: Added.
(WebKit::UnifiedPDFPlugin::create):
(WebKit::UnifiedPDFPlugin::UnifiedPDFPlugin):
(WebKit::UnifiedPDFPlugin::teardown):
(WebKit::UnifiedPDFPlugin::scaleFactor const):
(WebKit::UnifiedPDFPlugin::pdfDocumentForPrinting const):
(WebKit::UnifiedPDFPlugin::pdfDocumentSizeForPrinting const):
(WebKit::UnifiedPDFPlugin::streamDidReceiveResponse):
(WebKit::UnifiedPDFPlugin::streamDidReceiveData):
(WebKit::UnifiedPDFPlugin::streamDidFinishLoading):
(WebKit::UnifiedPDFPlugin::streamDidFail):
(WebKit::UnifiedPDFPlugin::liveResourceData const):
(WebKit::UnifiedPDFPlugin::handleMouseEvent):
(WebKit::UnifiedPDFPlugin::handleWheelEvent):
(WebKit::UnifiedPDFPlugin::handleMouseEnterEvent):
(WebKit::UnifiedPDFPlugin::handleMouseLeaveEvent):
(WebKit::UnifiedPDFPlugin::handleContextMenuEvent):
(WebKit::UnifiedPDFPlugin::handleKeyboardEvent):
(WebKit::UnifiedPDFPlugin::handleEditingCommand):
(WebKit::UnifiedPDFPlugin::isEditingCommandEnabled):
(WebKit::UnifiedPDFPlugin::getSelectionString const):
(WebKit::UnifiedPDFPlugin::existingSelectionContainsPoint const):
(WebKit::UnifiedPDFPlugin::rectForSelectionInRootView const):
(WebKit::UnifiedPDFPlugin::countFindMatches):
(WebKit::UnifiedPDFPlugin::findString):
(WebKit::UnifiedPDFPlugin::performDictionaryLookupAtLocation):
(WebKit:: const):
(WebKit::UnifiedPDFPlugin::snapshot):
(WebKit::UnifiedPDFPlugin::accessibilityHitTest const):
(WebKit::UnifiedPDFPlugin::accessibilityObject const):
(WebKit::UnifiedPDFPlugin::accessibilityAssociatedPluginParentForElement const):
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::createPlugin):
(WebKit::PluginView::PluginView):
(WebKit::PluginView::initializePlugin):
(WebKit::PluginView::platformLayer const):
(WebKit::PluginView::scroll):
(WebKit::PluginView::scrollPositionForTesting const):
(WebKit::PluginView::horizontalScrollbar):
(WebKit::PluginView::verticalScrollbar):
(WebKit::PluginView::wantsWheelEvents):
(WebKit::PluginView::paint):
(WebKit::PluginView::invalidateRect):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

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




More information about the webkit-changes mailing list