[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