Changeset 246276 in webkit


Ignore:
Timestamp:
Jun 10, 2019 1:11:17 PM (5 years ago)
Author:
Wenson Hsieh
Message:

[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 Simon Fraser.

Source/WebKit:

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):

Tools:

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):

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r246270 r246276  
     12019-06-10  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests
     4        https://bugs.webkit.org/show_bug.cgi?id=198699
     5        <rdar://problem/50501718>
     6
     7        Reviewed by Simon Fraser.
     8
     9        Lift logic that sets the "IsKnownToLayOutWiderThanViewport" flag out of resetViewportDefaultConfiguration, and
     10        into didCommitLoad instead (along with other logic for resetting viewport arguments). The previous method,
     11        resetViewportDefaultConfiguration, was being triggered very frequently undo didReceiveMobileDocType, causing the
     12        shrink-to-fit heuristic to sometimes take no effect. The original intention here was simply to reset the flag
     13        upon page load.
     14
     15        * WebProcess/WebPage/WebPage.cpp:
     16        (WebKit::WebPage::didCommitLoad):
     17        * WebProcess/WebPage/ios/WebPageIOS.mm:
     18        (WebKit::WebPage::resetViewportDefaultConfiguration):
     19
    1202019-06-10  Timothy Hatcher  <timothy@apple.com>
    221
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r246239 r246276  
    57565756        viewportChanged = true;
    57575757
     5758    if (m_viewportConfiguration.setIsKnownToLayOutWiderThanViewport(false))
     5759        viewportChanged = true;
     5760
    57585761    if (viewportChanged)
    57595762        viewportConfigurationChanged();
  • trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

    r246226 r246276  
    32113211    else
    32123212        m_viewportConfiguration.setDefaultConfiguration(parametersForStandardFrame());
    3213     m_viewportConfiguration.setIsKnownToLayOutWiderThanViewport(false);
    32143213
    32153214    if (auto overriddenViewLayoutWidth = document->quirks().overriddenViewLayoutWidth(m_viewportConfiguration.layoutWidth()))
  • trunk/Tools/ChangeLog

    r246272 r246276  
     12019-06-10  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        [iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests
     4        https://bugs.webkit.org/show_bug.cgi?id=198699
     5        <rdar://problem/50501718>
     6
     7        Reviewed by Simon Fraser.
     8
     9        Add logic to platformResetPreferencesToConsistentValues, to reset the "ShouldIgnoreMetaViewport" preference.
     10        While this is already being adjusted in platformConfigureViewForTest using the correct, TestOptions, this might
     11        happen too late, allowing the shrink-to-fit-content heuristic to unexpectedly kick in on tests where testing
     12        viewport parameters are used.
     13
     14        * WebKitTestRunner/ios/TestControllerIOS.mm:
     15        (WTR::TestController::platformResetPreferencesToConsistentValues):
     16        (WTR::TestController::platformConfigureViewForTest):
     17
    1182019-06-10  Yusuke Suzuki  <ysuzuki@apple.com>
    219
  • trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm

    r245663 r246276  
    135135    WKPreferencesSetTextAutosizingEnabled(preferences, false);
    136136    WKPreferencesSetContentChangeObserverEnabled(preferences, false);
     137    [(__bridge WKPreferences *)preferences _setShouldIgnoreMetaViewport:NO];
    137138}
    138139
     
    190191    TestRunnerWKWebView *webView = mainWebView()->platformView();
    191192
    192     webView.configuration.preferences._shouldIgnoreMetaViewport = test.options().shouldIgnoreMetaViewport;
     193    if (test.options().shouldIgnoreMetaViewport)
     194        webView.configuration.preferences._shouldIgnoreMetaViewport = YES;
    193195
    194196    if (!test.options().useFlexibleViewport)
Note: See TracChangeset for help on using the changeset viewer.