Changeset 236530 in webkit
- Timestamp:
- Sep 26, 2018, 3:31:18 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 16 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/viewport/ios/ipad/empty-meta-expected.txt (added)
-
LayoutTests/fast/viewport/ios/ipad/empty-meta.html (added)
-
LayoutTests/fast/viewport/ios/ipad/meta-viewport-ignored-expected.txt (added)
-
LayoutTests/fast/viewport/ios/ipad/meta-viewport-ignored.html (added)
-
LayoutTests/fast/viewport/ios/resources/viewport-test-utils.js (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/page/Settings.yaml (modified) (1 diff)
-
Source/WebCore/page/ViewportConfiguration.cpp (modified) (1 diff)
-
Source/WebCore/page/ViewportConfiguration.h (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/Shared/WebPreferences.yaml (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h (modified) (1 diff)
-
Source/WebKit/WebProcess/WebPage/WebPage.cpp (modified) (2 diffs)
-
Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (modified) (2 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/WebKitTestRunner/TestController.cpp (modified) (1 diff)
-
Tools/WebKitTestRunner/TestOptions.h (modified) (1 diff)
-
Tools/WebKitTestRunner/ios/TestControllerIOS.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r236527 r236530 1 2018-09-26 James Savage <james.savage@apple.com> 2 3 Allow override of viewport configuration. 4 https://bugs.webkit.org/show_bug.cgi?id=188772. 5 <rdar://problem/43538892>. 6 7 Reviewed by Simon Fraser. 8 9 Add test proving that a document without a meta viewport specifying 10 width=device-width still gets a layout when this setting is enabled. I also 11 added a baseline case to prove that without this setting we do not layout 12 at device width. 13 14 * fast/viewport/ios/ipad/empty-viewport-expected.txt: Added. 15 * fast/viewport/ios/ipad/empty-viewport.html: Added. 16 * fast/viewport/ios/ipad/meta-viewport-disabled-expected.txt: Added. 17 * fast/viewport/ios/ipad/meta-viewport-disabled.html: Added. 18 1 19 2018-09-26 Alex Christensen <achristensen@webkit.org> 2 20 -
trunk/LayoutTests/fast/viewport/ios/resources/viewport-test-utils.js
r190260 r236530 51 51 function getViewport() 52 52 { 53 var metaTag = document.head.querySelectorAll('meta')[0]; 53 var metaTags = document.head.querySelectorAll('meta'); 54 if (!metaTags.length) 55 return; 56 57 var metaTag = metaTags[0]; 54 58 document.getElementById('viewport').textContent = metaTag.getAttribute('content'); 55 59 } -
trunk/Source/WebCore/ChangeLog
r236528 r236530 1 2018-09-26 James Savage <james.savage@apple.com> 2 3 Allow override of viewport configuration. 4 https://bugs.webkit.org/show_bug.cgi?id=188772. 5 <rdar://problem/43538892>. 6 7 Reviewed by Simon Fraser. 8 9 * page/Settings.yaml: 10 * page/ViewportConfiguration.cpp: 11 (WebCore::ViewportConfiguration::nativeWebpageParameters): Provide a viewport configuration 12 similar to width=device-width, with initial scale set to 1. 13 * page/ViewportConfiguration.h: 14 1 15 2018-09-26 Alex Christensen <achristensen@webkit.org> 2 16 -
trunk/Source/WebCore/page/Settings.yaml
r236519 r236530 764 764 shouldDeferAsynchronousScriptsUntilAfterDocumentLoad: 765 765 initial: false 766 767 shouldIgnoreMetaViewport: 768 initial: false -
trunk/Source/WebCore/page/ViewportConfiguration.cpp
r232916 r236530 290 290 } 291 291 292 ViewportConfiguration::Parameters ViewportConfiguration::nativeWebpageParameters() 293 { 294 Parameters parameters; 295 parameters.width = ViewportArguments::ValueDeviceWidth; 296 parameters.widthIsSet = true; 297 parameters.allowsUserScaling = true; 298 parameters.allowsShrinkToFit = false; 299 parameters.minimumScale = 1; 300 parameters.maximumScale = 5; 301 parameters.initialScale = 1; 302 parameters.initialScaleIsSet = true; 303 return parameters; 304 } 305 292 306 ViewportConfiguration::Parameters ViewportConfiguration::webpageParameters() 293 307 { -
trunk/Source/WebCore/page/ViewportConfiguration.h
r231779 r236530 102 102 bool avoidsUnsafeArea() const { return m_configuration.avoidsUnsafeArea; } 103 103 104 // Matches a width=device-width, initial-scale=1 viewport. 105 WEBCORE_EXPORT static Parameters nativeWebpageParameters(); 104 106 WEBCORE_EXPORT static Parameters webpageParameters(); 105 107 WEBCORE_EXPORT static Parameters textDocumentParameters(); -
trunk/Source/WebKit/ChangeLog
r236529 r236530 1 2018-09-26 James Savage <james.savage@apple.com> 2 3 Allow override of viewport configuration. 4 https://bugs.webkit.org/show_bug.cgi?id=188772. 5 <rdar://problem/43538892>. 6 7 Reviewed by Simon Fraser. 8 9 * Shared/WebPreferences.yaml: 10 * UIProcess/API/Cocoa/WKPreferences.mm: 11 (-[WKPreferences _setShouldIgnoreMetaViewport:]): 12 (-[WKPreferences _shouldIgnoreMetaViewport]): 13 * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 14 * WebProcess/WebPage/WebPage.cpp: 15 (WebKit::WebPage::viewportPropertiesDidChange): If we are ignoring the 16 <meta> viewport, short circuit calling setViewportArguments() and do not 17 do any updates. 18 (WebKit::WebPage::didCommitLoad): Ditto. 19 * WebProcess/WebPage/ios/WebPageIOS.mm: 20 (WebKit::WebPage::resetViewportDefaultConfiguration): Select the default 21 configuration based on UIProcess setting. 22 1 23 2018-09-26 Chris Dumez <cdumez@apple.com> 2 24 -
trunk/Source/WebKit/Shared/WebPreferences.yaml
r236519 r236530 954 954 defaultValue: defaultPassiveTouchListenersAsDefaultOnDocument() 955 955 webcoreName: passiveTouchListenersAsDefaultOnDocument 956 957 ShouldIgnoreMetaViewport: 958 type: bool 959 defaultValue: false 956 960 957 961 # Debug Preferences -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
r235921 r236530 810 810 } 811 811 812 - (void)_setShouldIgnoreMetaViewport:(BOOL)ignoreMetaViewport 813 { 814 return _preferences->setShouldIgnoreMetaViewport(ignoreMetaViewport); 815 } 816 817 - (BOOL)_shouldIgnoreMetaViewport 818 { 819 return _preferences->shouldIgnoreMetaViewport(); 820 } 821 812 822 #if PLATFORM(MAC) 813 823 - (void)_setJavaEnabledForLocalFiles:(BOOL)enabled -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
r235961 r236530 148 148 @property (nonatomic, setter=_setPunchOutWhiteBackgroundsInDarkMode:) BOOL _punchOutWhiteBackgroundsInDarkMode WK_API_AVAILABLE(macosx(10.14), ios(12.0)); 149 149 @property (nonatomic, setter=_setLowPowerVideoAudioBufferSizeEnabled:) BOOL _lowPowerVideoAudioBufferSizeEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 150 @property (nonatomic, setter=_setShouldIgnoreMetaViewport:) BOOL _shouldIgnoreMetaViewport WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 150 151 151 152 #if !TARGET_OS_IPHONE -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r236529 r236530 1806 1806 { 1807 1807 #if PLATFORM(IOS) 1808 if ( m_viewportConfiguration.setViewportArguments(viewportArguments))1808 if (!m_page->settings().shouldIgnoreMetaViewport() && m_viewportConfiguration.setViewportArguments(viewportArguments)) 1809 1809 viewportConfigurationChanged(); 1810 1810 #endif … … 5321 5321 viewportChanged = true; 5322 5322 5323 if ( m_viewportConfiguration.setViewportArguments(coreFrame->document()->viewportArguments()))5323 if (!m_page->settings().shouldIgnoreMetaViewport() && m_viewportConfiguration.setViewportArguments(coreFrame->document()->viewportArguments())) 5324 5324 viewportChanged = true; 5325 5325 -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r235834 r236530 2750 2750 } 2751 2751 2752 auto parametersForStandardFrame = [&] { 2753 if (m_page->settings().shouldIgnoreMetaViewport()) 2754 return ViewportConfiguration::nativeWebpageParameters(); 2755 2756 return ViewportConfiguration::webpageParameters(); 2757 }; 2758 2752 2759 if (!frame) { 2753 m_viewportConfiguration.setDefaultConfiguration( ViewportConfiguration::webpageParameters());2760 m_viewportConfiguration.setDefaultConfiguration(parametersForStandardFrame()); 2754 2761 return; 2755 2762 } … … 2766 2773 m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters()); 2767 2774 else 2768 m_viewportConfiguration.setDefaultConfiguration( ViewportConfiguration::webpageParameters());2775 m_viewportConfiguration.setDefaultConfiguration(parametersForStandardFrame()); 2769 2776 } 2770 2777 -
trunk/Tools/ChangeLog
r236528 r236530 1 2018-09-26 James Savage <james.savage@apple.com> 2 3 Allow override of viewport configuration. 4 https://bugs.webkit.org/show_bug.cgi?id=188772. 5 <rdar://problem/43538892>. 6 7 Reviewed by Simon Fraser. 8 9 * WebKitTestRunner/TestController.cpp: 10 (WTR::updateTestOptionsFromTestHeader): Parse new test option key from comments. 11 * WebKitTestRunner/TestOptions.h: 12 * WebKitTestRunner/ios/TestControllerIOS.mm: 13 (WTR::TestController::platformConfigureViewForTest): Handle new test option by 14 modifying the web view's preferences accordingly. 15 1 16 2018-09-26 Alex Christensen <achristensen@webkit.org> 2 17 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r236481 r236530 1248 1248 else if (key == "runSingly") 1249 1249 testOptions.runSingly = parseBooleanTestHeaderValue(value); 1250 else if (key == "shouldIgnoreMetaViewport") 1251 testOptions.shouldIgnoreMetaViewport = parseBooleanTestHeaderValue(value); 1250 1252 pairStart = pairEnd + 1; 1251 1253 } -
trunk/Tools/WebKitTestRunner/TestOptions.h
r235948 r236530 63 63 bool runSingly { false }; 64 64 bool checkForWorldLeaks { false }; 65 bool shouldIgnoreMetaViewport { false }; 65 66 66 67 float deviceScaleFactor { 1 }; -
trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm
r235837 r236530 36 36 #import <Foundation/Foundation.h> 37 37 #import <UIKit/UIKit.h> 38 #import <WebKit/WKPreferencesPrivate.h> 38 39 #import <WebKit/WKPreferencesRefPrivate.h> 39 40 #import <WebKit/WKProcessPoolPrivate.h> … … 133 134 134 135 TestRunnerWKWebView *webView = mainWebView()->platformView(); 136 137 if (test.options().shouldIgnoreMetaViewport) 138 webView.configuration.preferences._shouldIgnoreMetaViewport = YES; 139 135 140 CGRect screenBounds = [UIScreen mainScreen].bounds; 136 137 141 CGSize oldSize = webView.bounds.size; 138 142 mainWebView()->resizeTo(screenBounds.size.width, screenBounds.size.height, PlatformWebView::WebViewSizingMode::HeightRespectsStatusBar);
Note:
See TracChangeset
for help on using the changeset viewer.