[webkit-changes] [WebKit/WebKit] bc3a3d: [UnifiedPDF][iOS] Start zooming in the plugin.

Sammy Gill noreply at github.com
Wed Sep 18 19:46:03 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bc3a3d94e49ea4c9bbef02dba14d71be8191c540
      https://github.com/WebKit/WebKit/commit/bc3a3d94e49ea4c9bbef02dba14d71be8191c540
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2024-09-18 (Wed, 18 Sep 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  [UnifiedPDF][iOS] Start zooming in the plugin.
https://bugs.webkit.org/show_bug.cgi?id=279689
rdar://120425065

Reviewed by Abrar Rahman Protyasha and Wenson Hsieh.

This patch serves as a first step towards allowing the plugin to be completely responsible
for zooming on iOS and focuses on allowing this behavior for main frame PDFs.

When the UIScrollView is zoomed and the delegate is informed of the zoom events we will
check to see if the web content process has a main framed plugin that is responsible for
handling the page scale gesture. If it does we will inform it about the beginning of
the gesture and the end. This information gets plumbed to the PDFPlugin which keeps track
of it as an extra bit of state.

Whenever the WebPage is handling a content rect update from the UIProcess we will forward
over the new page scale to the plugin to handle rather than sending it over to the page.
The origin that is passed along to the plugin is just the origin of the visible content
rect that we got from the UIProcess so we will just simply scroll to its position in
the ScrolledContents coordinate space.

* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView scrollViewWillBeginZooming:withView:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didEndUserTriggeredZooming):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::setScaleFactor):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
(WebKit::WebPage::willStartUserTriggeredZooming):
(WebKit::WebPage::didEndUserTriggeredZooming):

Canonical link: https://commits.webkit.org/283888@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