WebKit Bugzilla
Attachment 371713 Details for
Bug 198699
: [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198699-20190609143441.patch (text/plain), 5.42 KB, created by
Wenson Hsieh
on 2019-06-09 14:34:42 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Wenson Hsieh
Created:
2019-06-09 14:34:42 PDT
Size:
5.42 KB
patch
obsolete
>Subversion Revision: 246236 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 6847013b3e6c898919eb905dee10a93dd7057ad3..b307b25733a5d509e1d447858ef540c8863292f8 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,22 @@ >+2019-06-09 Wenson Hsieh <wenson_hsieh@apple.com> >+ >+ [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests >+ https://bugs.webkit.org/show_bug.cgi?id=198699 >+ <rdar://problem/50501718> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Lift logic that sets the "IsKnownToLayOutWiderThanViewport" flag out of resetViewportDefaultConfiguration, and >+ into didCommitLoad instead (along with other logic for resetting viewport arguments). The previous method, >+ resetViewportDefaultConfiguration, was being triggered very frequently undo didReceiveMobileDocType, causing the >+ shrink-to-fit heuristic to sometimes take no effect. The original intention here was simply to reset the flag >+ upon page load. >+ >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::didCommitLoad): >+ * WebProcess/WebPage/ios/WebPageIOS.mm: >+ (WebKit::WebPage::resetViewportDefaultConfiguration): >+ > 2019-06-08 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] The default application name for user agent when requesting desktop content is still "Mobile/15E148" >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 2ed7e931822fcb6c04f2c8e2edc99563f8ae55f8..f7b1312ebdf22ff900542afd6750aff3baebaa9d 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -5753,6 +5753,9 @@ void WebPage::didCommitLoad(WebFrame* frame) > if (m_viewportConfiguration.setViewportArguments(coreFrame->document()->viewportArguments())) > viewportChanged = true; > >+ if (m_viewportConfiguration.setIsKnownToLayOutWiderThanViewport(false)) >+ viewportChanged = true; >+ > if (viewportChanged) > viewportConfigurationChanged(); > #endif >diff --git a/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm b/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >index 38bf8fe5f77a8c16d6610b0a1596bb71eaaf7a50..8ae3025b64921c05557415c917057a7b8cf98e1a 100644 >--- a/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >+++ b/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >@@ -3210,7 +3210,6 @@ void WebPage::resetViewportDefaultConfiguration(WebFrame* frame, bool hasMobileD > m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters()); > else > m_viewportConfiguration.setDefaultConfiguration(parametersForStandardFrame()); >- m_viewportConfiguration.setIsKnownToLayOutWiderThanViewport(false); > > if (auto overriddenViewLayoutWidth = document->quirks().overriddenViewLayoutWidth(m_viewportConfiguration.layoutWidth())) > m_viewportConfiguration.setViewLayoutSize(FloatSize(*overriddenViewLayoutWidth, m_viewportConfiguration.layoutHeight())); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index c6aa70a4546cf079f6499fdb046251010c933af9..d00839b671bdaaa793c23c6476a0a0414da485c7 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,20 @@ >+2019-06-09 Wenson Hsieh <wenson_hsieh@apple.com> >+ >+ [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests >+ https://bugs.webkit.org/show_bug.cgi?id=198699 >+ <rdar://problem/50501718> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add logic to platformResetPreferencesToConsistentValues, to reset the "ShouldIgnoreMetaViewport" preference. >+ While this is already being adjusted in platformConfigureViewForTest using the correct, TestOptions, this might >+ happen too late, allowing the shrink-to-fit-content heuristic to unexpectedly kick in on tests where testing >+ viewport parameters are used. >+ >+ * WebKitTestRunner/ios/TestControllerIOS.mm: >+ (WTR::TestController::platformResetPreferencesToConsistentValues): >+ (WTR::TestController::platformConfigureViewForTest): >+ > 2019-06-08 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] The default application name for user agent when requesting desktop content is still "Mobile/15E148" >diff --git a/Tools/WebKitTestRunner/ios/TestControllerIOS.mm b/Tools/WebKitTestRunner/ios/TestControllerIOS.mm >index 7e9e1e7bb71d67e3171cb4f61f74541682f04106..73706313ae86c3975c423d9667b7e7f38e2dee18 100644 >--- a/Tools/WebKitTestRunner/ios/TestControllerIOS.mm >+++ b/Tools/WebKitTestRunner/ios/TestControllerIOS.mm >@@ -134,6 +134,7 @@ void TestController::platformResetPreferencesToConsistentValues() > WKPreferencesRef preferences = platformPreferences(); > WKPreferencesSetTextAutosizingEnabled(preferences, false); > WKPreferencesSetContentChangeObserverEnabled(preferences, false); >+ [(__bridge WKPreferences *)preferences _setShouldIgnoreMetaViewport:NO]; > } > > void TestController::platformResetStateToConsistentValues(const TestOptions& options) >@@ -189,7 +190,8 @@ void TestController::platformConfigureViewForTest(const TestInvocation& test) > { > TestRunnerWKWebView *webView = mainWebView()->platformView(); > >- webView.configuration.preferences._shouldIgnoreMetaViewport = test.options().shouldIgnoreMetaViewport; >+ if (test.options().shouldIgnoreMetaViewport) >+ webView.configuration.preferences._shouldIgnoreMetaViewport = YES; > > if (!test.options().useFlexibleViewport) > return;
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 198699
: 371713