DescriptionPlumb opener information when creating RenderFrames and
RenderFrameProxies for subframes.
Frame opener updates (via window.open) make it possible for subframes
to have an opener. Currently, when a subframe gains an opener, this
will be forwarded to the browser process and all of the renderer
processes where the subframe has a RenderFrame or a RenderFrameProxy.
Openers are also supposed to be preserved across cross-process frame
navigations. Currently, this is done correctly for top-level frames
(where opener information is sent as part of ViewMsg_New), but not for
subframes: FrameMsg_NewFrame and FrameMsg_NewFrameProxy currently
don't pass any information about the frame's opener.
For example, suppose a frame F1 has two subframes, F2 and F3, all at
site A. Suppose F1 executes a window.open('',F2_name) to update F2's
opener to F1. Now suppose F2 navigates to B. F2's frame in B should
have an opener that points to F1's proxy in B, but currently that's
not the case. Likewise, suppose F3 navigates to C. F2's proxy in C
should have an opener that points to F1's proxy in C.
This CL plumbs opener information through FrameMsg_NewFrame(Proxy) to
make these scenarios work correctly.
BUG=225940
Committed: https://crrev.com/a181efc0fa9b899a2a1f3a69053a1adb0b8683c1
Cr-Commit-Position: refs/heads/master@{#347072}
Patch Set 1 #Patch Set 2 : Add NewFrameProxy plumbing and test #
Total comments: 9
Patch Set 3 : Rebase #Patch Set 4 : Charlie's comments #Patch Set 5 : Resolve conflict with Daniel's CL #
Total comments: 2
Patch Set 6 : Rebase and fix arg order in CreateRenderFrame #
Total comments: 2
Patch Set 7 : Fix param ordering in RenderThreadImpl::OnCreateNewFrameProxy #Depends on Patchset: Messages
Total messages: 19 (8 generated)
|