WebKit Bugzilla
Attachment 347590 Details for
Bug 188772
: Allow override of viewport configuration
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188772-20180820182650.patch (text/plain), 9.55 KB, created by
James Savage
on 2018-08-20 18:26:50 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
James Savage
Created:
2018-08-20 18:26:50 PDT
Size:
9.55 KB
patch
obsolete
>Subversion Revision: 235099 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 48c8b60d70b9586778527c53bfb877fdbc0e14e6..dda95a7dee9aa5cae9822f1583d71af277c32f2c 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2018-08-20 James Savage <james.savage@apple.com> >+ >+ Allow override of viewport configuration. >+ https://bugs.webkit.org/show_bug.cgi?id=188772. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * page/Settings.yaml: >+ * page/ViewportConfiguration.cpp: >+ (WebCore::ViewportConfiguration::deviceWebpageParameters): >+ * page/ViewportConfiguration.h: >+ > 2018-08-20 Michael Catanzaro <mcatanzaro@igalia.com> > > [CMake] Sync unified build with Cocoa ports >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 100f12ce604731c39efdf27c9d14a051ce88be42..21f4fde2887be4f42c19187157c9700aa6adb5d8 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,23 @@ >+2018-08-20 James Savage <james.savage@apple.com> >+ >+ Allow override of viewport configuration. >+ https://bugs.webkit.org/show_bug.cgi?id=188772. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/WebPreferences.yaml: >+ * UIProcess/API/Cocoa/WKPreferences.mm: >+ (-[WKPreferences _setShouldIgnoreMetaViewport:]): >+ (-[WKPreferences _shouldIgnoreMetaViewport]): >+ * UIProcess/API/Cocoa/WKPreferencesPrivate.h: >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::viewportPropertiesDidChange): Short circuit calling >+ setViewportArguments() if we are not respecting <meta> viewport. >+ (WebKit::WebPage::didCommitLoad): Ditto. >+ * WebProcess/WebPage/ios/WebPageIOS.mm: >+ (WebKit::WebPage::resetViewportDefaultConfiguration): Select the default >+ configuration based on UIProcess setting. >+ > 2018-08-20 Michael Catanzaro <mcatanzaro@igalia.com> > > [CMake] Sync unified build with Cocoa ports >diff --git a/Source/WebCore/page/Settings.yaml b/Source/WebCore/page/Settings.yaml >index 2122e909135c2b1f7fe84d6a2d089bd72a7a044a..7b13fc41157f185f32aa1e752c5c15e75603baac 100644 >--- a/Source/WebCore/page/Settings.yaml >+++ b/Source/WebCore/page/Settings.yaml >@@ -760,3 +760,6 @@ incompleteImageBorderEnabled: > > shouldDeferAsynchronousScriptsUntilAfterDocumentLoad: > initial: false >+ >+shouldIgnoreMetaViewport: >+ initial: false >diff --git a/Source/WebCore/page/ViewportConfiguration.cpp b/Source/WebCore/page/ViewportConfiguration.cpp >index 1c4502adbe79820f4b6278392938ae3c4c04cd90..960935ab36bd0e3991a4aa501c276669e0d11dc3 100644 >--- a/Source/WebCore/page/ViewportConfiguration.cpp >+++ b/Source/WebCore/page/ViewportConfiguration.cpp >@@ -301,6 +301,20 @@ ViewportConfiguration::Parameters ViewportConfiguration::webpageParameters() > return parameters; > } > >+ViewportConfiguration::Parameters ViewportConfiguration::deviceWebpageParameters() >+{ >+ Parameters parameters; >+ parameters.width = ViewportArguments::ValueDeviceWidth; >+ parameters.widthIsSet = true; >+ parameters.allowsUserScaling = true; >+ parameters.allowsShrinkToFit = false; >+ parameters.minimumScale = 1; >+ parameters.maximumScale = 5; >+ parameters.initialScale = 1; >+ parameters.initialScaleIsSet = true; >+ return parameters; >+} >+ > ViewportConfiguration::Parameters ViewportConfiguration::textDocumentParameters() > { > Parameters parameters; >diff --git a/Source/WebCore/page/ViewportConfiguration.h b/Source/WebCore/page/ViewportConfiguration.h >index 266dbd7537509127a5932b0d27dd5cc79202450e..128472f6a017a5b2eb892c5678ae530ecdbb9e04 100644 >--- a/Source/WebCore/page/ViewportConfiguration.h >+++ b/Source/WebCore/page/ViewportConfiguration.h >@@ -102,6 +102,7 @@ public: > bool avoidsUnsafeArea() const { return m_configuration.avoidsUnsafeArea; } > > WEBCORE_EXPORT static Parameters webpageParameters(); >+ WEBCORE_EXPORT static Parameters deviceWebpageParameters(); > WEBCORE_EXPORT static Parameters textDocumentParameters(); > WEBCORE_EXPORT static Parameters imageDocumentParameters(); > WEBCORE_EXPORT static Parameters xhtmlMobileParameters(); >diff --git a/Source/WebKit/Shared/WebPreferences.yaml b/Source/WebKit/Shared/WebPreferences.yaml >index 260221cb30cd25bf524c22b74e6525187fb8001c..cd1d56290fbc007dbc4bbed4ed5cd7c7801ed258 100644 >--- a/Source/WebKit/Shared/WebPreferences.yaml >+++ b/Source/WebKit/Shared/WebPreferences.yaml >@@ -939,6 +939,11 @@ PassiveTouchListenersAsDefaultOnDocument: > defaultValue: defaultPassiveTouchListenersAsDefaultOnDocument() > webcoreName: passiveTouchListenersAsDefaultOnDocument > >+ShouldIgnoreMetaViewport: >+ type: bool >+ defaultValue: false >+ condition: PLATFORM(IOS) >+ > # Debug Preferences > > AcceleratedDrawingEnabled: >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm >index c49b4768a2d801e1a299f4c69f0b37c8bd20ae3a..980f59f997226736e9bcb9b8bb549e804fcaee97 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm >@@ -782,6 +782,18 @@ - (BOOL)_lowPowerVideoAudioBufferSizeEnabled > return _preferences->lowPowerVideoAudioBufferSizeEnabled(); > } > >+#if PLATFORM(IOS) >+- (void)_setShouldIgnoreMetaViewport:(BOOL)ignoreMetaViewport >+{ >+ return _preferences->setShouldIgnoreMetaViewport(ignoreMetaViewport); >+} >+ >+- (BOOL)_shouldIgnoreMetaViewport >+{ >+ return _preferences->shouldIgnoreMetaViewport(); >+} >+#endif >+ > #if PLATFORM(MAC) > - (void)_setJavaEnabledForLocalFiles:(BOOL)enabled > { >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h >index 3879e35ed325e857b0c5ab73cd7bdac419e6533c..a06532c786cafe76f02a392a3bdcf8c2000be55b 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h >@@ -141,7 +141,9 @@ typedef NS_ENUM(NSInteger, _WKEditableLinkBehavior) { > @property (nonatomic, setter=_setPunchOutWhiteBackgroundsInDarkMode:) BOOL _punchOutWhiteBackgroundsInDarkMode WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); > @property (nonatomic, setter=_setLowPowerVideoAudioBufferSizeEnabled:) BOOL _lowPowerVideoAudioBufferSizeEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); > >-#if !TARGET_OS_IPHONE >+#if TARGET_OS_IPHONE >+@property (nonatomic, setter=_setShouldIgnoreMetaViewport:) BOOL _shouldIgnoreMetaViewport WK_API_AVAILABLE(ios(WK_IOS_TBA)); >+#else > @property (nonatomic, setter=_setWebGLEnabled:) BOOL _webGLEnabled WK_API_AVAILABLE(macosx(10.13.4)); > @property (nonatomic, setter=_setJavaEnabledForLocalFiles:) BOOL _javaEnabledForLocalFiles WK_API_AVAILABLE(macosx(10.13.4)); > @property (nonatomic, setter=_setCanvasUsesAcceleratedDrawing:) BOOL _canvasUsesAcceleratedDrawing WK_API_AVAILABLE(macosx(10.13.4)); >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 17a00649717b105ed1544bb7fa4346319972fa57..2086876ec555887d59c885bb7cb13671769191a0 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -1799,7 +1799,7 @@ void WebPage::disabledAdaptationsDidChange(const OptionSet<DisabledAdaptations>& > void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArguments) > { > #if PLATFORM(IOS) >- if (m_viewportConfiguration.setViewportArguments(viewportArguments)) >+ if (m_page->settings().shouldIgnoreMetaViewport() || m_viewportConfiguration.setViewportArguments(viewportArguments)) > viewportConfigurationChanged(); > #endif > >@@ -5316,7 +5316,7 @@ void WebPage::didCommitLoad(WebFrame* frame) > if (m_viewportConfiguration.setContentsSize(coreFrame->view()->contentsSize())) > viewportChanged = true; > >- if (m_viewportConfiguration.setViewportArguments(coreFrame->document()->viewportArguments())) >+ if (!m_page->settings().shouldIgnoreMetaViewport() && m_viewportConfiguration.setViewportArguments(coreFrame->document()->viewportArguments())) > viewportChanged = true; > > if (viewportChanged) >diff --git a/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm b/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >index 26186fb9870e17e45056bca0392baaf485bfff61..5fb711725d1ed16edb05b2da41a2b591c652d918 100644 >--- a/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >+++ b/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >@@ -2718,7 +2718,8 @@ void WebPage::resetViewportDefaultConfiguration(WebFrame* frame, bool hasMobileD > } > > if (!frame) { >- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters()); >+ auto parameters = m_page->settings().shouldIgnoreMetaViewport() ? ViewportConfiguration::deviceWebpageParameters() : ViewportConfiguration::webpageParameters(); >+ m_viewportConfiguration.setDefaultConfiguration(parameters); > return; > } > >@@ -2732,8 +2733,10 @@ void WebPage::resetViewportDefaultConfiguration(WebFrame* frame, bool hasMobileD > m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::imageDocumentParameters()); > else if (document->isTextDocument()) > m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters()); >- else >- m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters()); >+ else { >+ auto parameters = m_page->settings().shouldIgnoreMetaViewport() ? ViewportConfiguration::deviceWebpageParameters() : ViewportConfiguration::webpageParameters(); >+ m_viewportConfiguration.setDefaultConfiguration(parameters); >+ } > } > > void WebPage::viewportConfigurationChanged()
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188772
:
347590
|
347645
|
348329
|
349638
|
350799