DescriptionFix delivery of TestFinishedInSecondaryWindow message from OOPIFs.
Layout Tests run with --site-per-process flag and finishing in an OOPIF
were timing out because:
- BlinkTestController / NotifyDoneForwarder were only handling
ShellViewHostMsg_TestFinishedInSecondaryWindow coming from secondary
test windows (in the fixed cases, the message is coming from an OOPIF;
note that the current CL fixes handling and routing of the message and
naming is OOPIF-ied ["secondary window" -> "secondary renderer"] in a
separate, earlier CL - crrev.com/1746393002).
- In case of LayoutTests + OOPIF, the RenderViewObserver can see a
RenderView before it gets a routing id [1]. Before this CL
RenderViewObserver would stash the incorrect routing id which
BlinkTestRunner would attempt to use when sending
ShellViewHostMsg_TestFinishedInSecondaryWindow. This CL removes the
unnecessary RenderViewObserver::routing_id_ field and simply forwards
the routing id calculations/queries into the currently observed
RenderView.
- ShellViewHostMsg_TestFinishedInSecondaryWindow would be dropped on
the floor when the RenderView is swapped out.
This CL fixes the 3 issues described above and updates layout test
expectations for --site-per-process flag accordingly (note that some
tests that used to time out are passing now, but some simply changed the
failure mode from a timeout into a text diff or another failure mode).
BUG=477150
[1] Example callstack when RenderView doesn't yet have a routing id when
it is passed to the constructor of RenderViewObserver:
1 0x7f1fd66cfc36 content::RenderViewObserver::RenderViewObserver()
2 0x0000004758a3 content::BlinkTestRunner::BlinkTestRunner()
3 0x000000450bb3 content::LayoutTestContentRendererClient::WebTestProxyCreated()
4 0x00000047c237 content::(anonymous namespace)::CreateWebTestProxy()
5 0x7f1fd6770294 content::RenderViewImpl::Create()
6 0x7f1fd676a5f5 content::RenderThreadImpl::OnControlMessageReceived()
Patch Set 1 #Patch Set 2 : Reuse NotifyDoneForwarder to handle main window's messages. #Patch Set 3 : Rebasing on top of another CL. #Patch Set 4 : Need to retain some timeout expectations. #
Total comments: 2
Depends on Patchset: Messages
Total messages: 9 (4 generated)
|