[webkit-changes] [WebKit/WebKit] 4e3c07: [UnifiedPDF] [iOS] Double-tap to zoom has no effect
Abrar Rahman Protyasha
noreply at github.com
Wed Feb 12 17:12:42 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4e3c0732e9874fe1c9cc27eb52635b4297fe9ea4
https://github.com/WebKit/WebKit/commit/4e3c0732e9874fe1c9cc27eb52635b4297fe9ea4
Author: Abrar Rahman Protyasha <a_protyasha at apple.com>
Date: 2025-02-12 (Wed, 12 Feb 2025)
Changed paths:
M Source/WebKit/Platform/spi/Cocoa/PDFKitSPI.h
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M 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/ViewGestureGeometryCollector.cpp
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
Log Message:
-----------
[UnifiedPDF] [iOS] Double-tap to zoom has no effect
https://bugs.webkit.org/show_bug.cgi?id=287515
rdar://120425634
Reviewed by Tim Horton and Wenson Hsieh.
This patch teaches ViewGestureController to compute zoom information for
the main frame plugin element. We achieve this by computing the root
view bounding rect for the plugin at a tap location. In the spirit of
"smart" magnification, this bounding rect corresponds to the column
frame for text under the tap location in the document. However, we
return an empty rect when there is no available text, which makes us
fall back to our backup double-tap-to-zoom heuristics for web content.
Manually tested. Could not add an automated test because we don't really
have infrastructure in place to trigger UIKit double tap gestures in
TestWebKitAPI.
* Source/WebKit/Platform/spi/Cocoa/PDFKitSPI.h:
Declare the -[PDFPage columnFrameAtPoint:] SPI for open source builds.
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:nodeIsPluginElement:]):
(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]): Deleted.
Add a new argument `nodeIsPluginElement`, which we can consult to blast
through the "faster clicks over double tap" preference if the tapped
node is a plugin element.
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.h:
(WebKit::PDFPluginBase::absoluteBoundingRectForSmartMagnificationAtPoint const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::absoluteBoundingRectForSmartMagnificationAtPoint const):
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::absoluteBoundingRectForSmartMagnificationAtPoint const):
* Source/WebKit/WebProcess/Plugins/PluginView.h:
* Source/WebKit/WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::computeZoomInformationForNode):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::potentialTapAtPosition):
Canonical link: https://commits.webkit.org/290312@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list