[webkit-changes] [WebKit/WebKit] cbf8b3: Unified PDF plugin contents do not scroll
Tim Horton
noreply at github.com
Tue Nov 7 16:13:58 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cbf8b324d90f14ca4483446c751202a6e40b86a8
https://github.com/WebKit/WebKit/commit/cbf8b324d90f14ca4483446c751202a6e40b86a8
Author: Tim Horton <timothy_horton at apple.com>
Date: 2023-11-07 (Tue, 07 Nov 2023)
Changed paths:
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
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
M Source/WebKit/WebProcess/WebPage/WebFrame.h
Log Message:
-----------
Unified PDF plugin contents do not scroll
https://bugs.webkit.org/show_bug.cgi?id=264359
Reviewed by Simon Fraser.
Hoist PDFPlugin ScrollableArea implementation to PDFPluginBase.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::isLocked const):
(WebKit::PDFPlugin::handleMouseEvent):
(WebKit::PDFPlugin::snapshot):
Add and adopt isLocked().
(WebKit::PDFPlugin::contentsSize const):
(WebKit::PDFPlugin::firstPageHeight const):
Add methods to pull the contents and first page sizes instead of depending
on recomputing them at various times.
(WebKit::PDFPlugin::geometryDidChange):
(WebKit::PDFPlugin::updatePDFHUDLocation):
Rename calculateSizes() to updatePDFHUDLocation() since that's the last thing it does.
(WebKit::PDFPlugin::didChangeScrollOffset):
(WebKit::PDFPlugin::notifyContentScaleFactorChanged):
(WebKit::PDFPlugin::notifyDisplayModeChanged):
(WebKit::PDFPlugin::convertFromScrollbarToContainingView const): Deleted.
(WebKit::PDFPlugin::convertFromContainingViewToScrollbar const): Deleted.
(WebKit::PDFPlugin::debugDescription const): Deleted.
(WebKit::PDFPlugin::scrollCornerRect const): Deleted.
(WebKit::PDFPlugin::enclosingScrollableArea const): Deleted.
(WebKit::PDFPlugin::scrollableAreaBoundingBox const): Deleted.
(WebKit::PDFPlugin::isActive const): Deleted.
(WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const): Deleted.
(WebKit::PDFPlugin::scrollPosition const): Deleted.
(WebKit::PDFPlugin::minimumScrollPosition const): Deleted.
(WebKit::PDFPlugin::maximumScrollPosition const): Deleted.
(WebKit::PDFPlugin::scrollbarStyleChanged): Deleted.
(WebKit::PDFPlugin::deviceScaleFactor const): Deleted.
(WebKit::PDFPlugin::calculateSizes): Deleted.
(WebKit::PDFPlugin::willDetachRenderer): Deleted.
(WebKit::PDFPlugin::updateControlTints): Deleted.
(WebKit::PDFPlugin::setScrollOffset): Deleted.
Move ScrollableArea implementation to PDFPluginBase.
(WebKit::PDFPlugin::updateScrollbars):
(WebKit::PDFPlugin::createScrollbar):
(WebKit::PDFPlugin::destroyScrollbar):
Keep scrollbar *layer* code in PDFPlugin.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
(WebKit::PDFPluginBase::scrollPositionForTesting const):
(WebKit::PDFPluginBase::willDetachRenderer): Deleted.
(WebKit::PDFPluginBase::updateControlTints): Deleted.
(WebKit::PDFPluginBase::wantsWheelEvents const):
Turn on wantsWheelEvents, since both subclasses do.
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm:
(WebKit::PDFPluginBase::updateControlTints):
(WebKit::PDFPluginBase::scrollCornerRect const):
(WebKit::PDFPluginBase::enclosingScrollableArea const):
(WebKit::PDFPluginBase::scrollableAreaBoundingBox const):
(WebKit::PDFPluginBase::setScrollOffset):
(WebKit::PDFPluginBase::isActive const):
(WebKit::PDFPluginBase::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const):
(WebKit::PDFPluginBase::scrollPosition const):
(WebKit::PDFPluginBase::minimumScrollPosition const):
(WebKit::PDFPluginBase::maximumScrollPosition const):
(WebKit::PDFPluginBase::deviceScaleFactor const):
(WebKit::PDFPluginBase::scrollbarStyleChanged):
(WebKit::PDFPluginBase::convertFromScrollbarToContainingView const):
(WebKit::PDFPluginBase::convertFromContainingViewToScrollbar const):
(WebKit::PDFPluginBase::debugDescription const):
(WebKit::PDFPluginBase::willDetachRenderer):
(WebKit::PDFPluginBase::updateScrollbars):
(WebKit::PDFPluginBase::createScrollbar):
(WebKit::PDFPluginBase::destroyScrollbar):
Hoist ScrollableArea implementation to here from PDFPlugin.
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::installPDFDocument):
(WebKit::UnifiedPDFPlugin::geometryDidChange):
(WebKit::UnifiedPDFPlugin::updateLayout):
Fold updateLayout/updateLayerHierarchy into updateLayout(), and also update scrollbars from there.
(WebKit::UnifiedPDFPlugin::scheduleRenderingUpdate):
Added; triggers a layer flush.
(WebKit::UnifiedPDFPlugin::isLocked const):
(WebKit::UnifiedPDFPlugin::contentsSize const):
(WebKit::UnifiedPDFPlugin::firstPageHeight const):
Implement these new getters.
(WebKit::UnifiedPDFPlugin::didChangeScrollOffset):
Move the contents layer around (for now) when the scroll offset changes.
(WebKit::UnifiedPDFPlugin::invalidateScrollbarRect):
(WebKit::UnifiedPDFPlugin::invalidateScrollCornerRect):
For now, ignor scrollbar invalidation; we don't have scrollbar layers yet.
(WebKit::UnifiedPDFPlugin::handleWheelEvent):
Pass wheel events to ScrollableArea.
Canonical link: https://commits.webkit.org/270358@main
More information about the webkit-changes
mailing list