DescriptionHandle layout tests that finish in OOPIFs.
When a layout test finishes, it calls BlinkTestRunner's TestFinished
method. If the main test frame resides in another renderer process,
then BlinkTestRunner sends a message to the browser process to let it
know that the test has finished (and to let it forward this notification
to the main test frame).
Before this CL, when a layout test would finish in an OOPIF, then
RenderView associated with BlinkTestRunner would be swapped-out, and
this meant that the notification message would be dropped and the test
would time out. After this CL, the notification message is sent
as a process/control message - this means that it reaches the browser
regardless of the swapped-out state of RenderViews. This fixes 25+
timeouts in --site-per-process mode.
This CL depends on many earlier CLs that had to ensure that tests finish
at the right moment - this requires proper tracking of top loading frame
across all renderers (https://crrev.com/1908233002), as well as properly
identifying the main test window (https://crrev.com/1896623002).
This CL also highlights that the main frame receives notification that
the test has finished in another renderer, *not* that another renderer
called testRunner.notifyDone (i.e. BlinkTestRunner::TestFinished can
also be called when test finishes due to the top loading frame finishing
loading). This means that the main frame doesn't execute
testRunner.notifyDone itself, but directly calls
BlinkTestRunner::TestFinished (calling notifyDone would not have worked
due to earlier resetting of wait_until_done LayoutTestRuntimeFlag).
Finally this CL, tweaks redirect-methods.html test to ensure that it
consistently allows WebFrameClient callbacks to be called (without
--site-per-process the delay would have occured because
top-loading-frame would still be tracked and would have prevented
synchronous finishing of the test when testRunner.notifyDone is called).
BUG=595895
Committed: https://crrev.com/042327073131b53a3a3f7d06c7e56d8eadaed9d2
Cr-Commit-Position: refs/heads/master@{#390398}
Patch Set 1 #Patch Set 2 : Rebasing... #Patch Set 3 : Rebasing... #Depends on Patchset: Messages
Total messages: 18 (10 generated)
|