[webkit-changes] [WebKit/WebKit] 4aebed: [UnifiedPDF][iOS] Create plugin specific viewport ...

Sammy Gill noreply at github.com
Thu Oct 10 09:32:54 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4aebedeb66526aa469f882e0fae0e91b50833f99
      https://github.com/WebKit/WebKit/commit/4aebedeb66526aa469f882e0fae0e91b50833f99
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2024-10-10 (Thu, 10 Oct 2024)

  Changed paths:
    M Source/WebCore/page/ViewportConfiguration.cpp
    M Source/WebCore/page/ViewportConfiguration.h
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  [UnifiedPDF][iOS] Create plugin specific viewport configuration.
https://bugs.webkit.org/show_bug.cgi?id=281167
rdar://137627221

Reviewed by Wenson Hsieh and Abrar Rahman Protyasha.

Main frame PDFs iOS currently have their viewport configuration set to ViewportConfiguration::webpageParameters
which uses defaultDesktopViewportWidth as the width of the content's viewport. This ends
up causing a number of issues that restrict us from getting any sort of scales correct
as we end up incorrectly sizing the plugin. In this patch we create a viewport configuration
that is specific to plugins so that we can tailor the parameters as appropriate for this
specific case.

This configuration is mostly the same as nativeWebpageParameters with the maximum scale
set to 1. We do this to avoid accidentally setting the page scale factor to any other
scales since the plugin is completely responsible for managing its scale. We may need to
fine tune this configuration a bit more in the future but this should hopefully serve as
a sane initial set that we can build upon.

We set this configuration when we initialize the plugin in PluginView::setParent by
informing the web page that we have initialized the plugin. The web page will then set
the viewport configuration to this new plugin specific one.

* Source/WebCore/page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::pluginParameters):
* Source/WebCore/page/ViewportConfiguration.h:
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setParent):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::resetViewportDefaultConfiguration):
(WebKit::WebPage::didInitializePlugin):

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