Bug 68923

Summary: [Chromium] Fixed layout mode tests break subsequent tests
Product: WebKit Reporter: Mihai Parparita <mihaip>
Component: Tools / TestsAssignee: Mihai Parparita <mihaip>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, fsamuel
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch abarth: review+

Description Mihai Parparita 2011-09-27 11:57:24 PDT
platform/chromium/fast/text/text-stroke-with-border.html has been flaky for quite a while:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=platform%2Fchromium%2Ffast%2Ftext%2Ftext-stroke-with-border.html&showExpectations=true

However, it almost always passes when retried. Looking at the diffs, it's supposed to have a 800x600 layout, but instead it ends up with a 360x240 one, even though it does no resizing. Looking at a test log (http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.6/builds/8553/steps/webkit_tests/logs/stdio), it looks like the worker that runs it also runs platform/chromium/fast/repaint/fixed-layout-360x240.html shortly before.  You can also reproduce this locally with:

run-webkit-tests --chromium --release --no-retry-failures platform/chromium/fast/repaint/fixed-layout-360x240.html platform/chromium/fast/text/text-stroke-with-border.html

(both tests pass when run in insolation)

The first test uses LayoutTestController capabilities that were added http://trac.webkit.org/changeset/94779 to switch to fixed layout. However, in between tests we never switch the ScrollView from out of fixed layout mode, so subsequent tests (until the next DRT process restart, which could be 1,000 tests later) end up in this inconsistent state.

I'll look into resetting fixed layout mode.
Comment 1 Fady Samuel 2011-09-27 12:03:49 PDT
Thanks for catching this. This should be a one-liner in Tools/DumpRenderTree/chromium/LayoutTestController.cpp.


LayoutTestController::reset() that sets m_shell->webView()->enableFixedLayoutMode(false);

Thanks again.
Comment 2 Mihai Parparita 2011-09-27 12:13:37 PDT
Created attachment 108879 [details]
Patch
Comment 3 Mihai Parparita 2011-09-27 12:14:31 PDT
Wasn't sure about where to do this resetting (where you mentioned vs. WebViewHost::reset() vs. TestShell::resetTestController()). I ended up going with the latter, since it's where we also reset page scaling, which seems similar.
Comment 4 Mihai Parparita 2011-09-27 13:23:16 PDT
Committed r96147: <http://trac.webkit.org/changeset/96147>