DescriptionEnsure that before creating proxy of site A, RVH of site A is initialized.
Imagine we have a frame pointing to oop site A.
Now if we kill the process of that frame, the RVH of A
goes into a IsRenderViewLive = false state.
If we try to navigate another frame to site A now, the RVH in question
is not initialized and proxy creation in root() will fail because
there's no frame in that RVH.
A
/
B
In A-embed-B scenario, killing process B should not destroy
the host/browser counter parts, so the Swapped out RFH/RVH and
proxy of B in A's |proxy_hosts_| should stay around.
This CL makes proxy of B stay around in A's |proxy_hosts_|.
Next time we want to navigate a frame to site instance B, it
should restore the renderer process by:
1) Making sure we call RFHM::InitRenderView().
2) Making sure we call RFPH::InitRenderFrameProxy().
To achieve 2), I've added a RFPH::IsRenderFrameProxyLive()
which behind the scenes uses a boolean render_frame_proxy_created_
that indicates whether the renderer/ side of the proxy has been
created or not.
BUG=432107
Test=Load two frames in a page, one pointing to different
origin (oop) and one pointing to same origin (local).
Kill the process associated with the oop frame.
Navigate the same origin frame to the first frame's site
instance so that it goes oop.
Committed: https://crrev.com/bb1af56567bd6f8724f4415c5151e3f4b0dd63d5
Cr-Commit-Position: refs/heads/master@{#314482}
Patch Set 1 : Force InitRenderView() #Patch Set 2 : call CreateFrame() if RVH is not live #
Total comments: 1
Patch Set 3 : Create new RVH instead of re-using + Add test #
Total comments: 15
Patch Set 4 : main_frame_routing_id set #Patch Set 5 : Retry with keeping proxy of B in A around, add IsRenderFrameProxyLive(). #Patch Set 6 : rebase @tott #Patch Set 7 : some minor cleanup #Patch Set 8 : sync @tott #Patch Set 9 : sync again #
Total comments: 21
Patch Set 10 : Address comments from Nasko. #Patch Set 11 : Cleaned up test files to load the tree structure directly from html #
Total comments: 7
Patch Set 12 : sync @tott before addressing comments #Patch Set 13 : Address comments from nasko@ #Patch Set 14 : Fix RenderFrameHostManagerTest.CleanUpSwappedOutRVHOnProcessCrash #
Total comments: 6
Patch Set 15 : address comments from Nasko #Patch Set 16 : Add a TODO based on the comment #Patch Set 17 : sync @tott #Messages
Total messages: 31 (7 generated)
|