Revert of Revert of OOPIF: Specify previous sibling frames when creating new RenderFr...
commit9f8705a9018d34dc5d7b834ebfc60d36b8208b5f
authoralexmos <alexmos@chromium.org>
Wed, 6 May 2015 19:58:59 +0000 (6 12:58 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 6 May 2015 19:59:35 +0000 (6 19:59 +0000)
tree15811b2e7ccdf30ace4547a9a64e11736c2b23fe
parentd7c41c74cd78f5da5eea8a31c52ce3e587e28750
Revert of Revert of OOPIF: Specify previous sibling frames when creating new RenderFrames. (patchset #1 id:1 of https://codereview.chromium.org/1118083004/)

Reason for revert:
The reason for the original revert was a leak caused by https://crbug.com/484760, and the relevant suppression was fixed in https://codereview.chromium.org/1130603002/.

Original issue's description:
> Revert of OOPIF: Specify previous sibling frames when creating new RenderFrames. (patchset #5 id:80001 of https://codereview.chromium.org/1113393004/)
>
> Reason for revert:
> Causing failures on asan bots:
> https://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/13202/steps/content_browsertests/logs/stdio
> https://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/builds/1047/steps/content_browsertests/logs/stdio
>
> Original issue's description:
> > OOPIF: Specify previous sibling frames when creating RenderFrames.
> >
> > When initializing a new renderer for an OOP frame, the current
> > behavior is to first create all the RenderFrameProxies, and then to
> > create the new RenderFrame, appending it as its parent's last child in
> > the frame tree.  This disregards the order of sibling frames and thus
> > may break indexed window access (e.g., window.frames[2]).
> >
> > This CL passes the previous sibling's routing ID in the
> > FrameMsg_NewFrame message, so that the new frame can be inserted in
> > the correct place in the frame tree.  Note that we don't need to do
> > this for RenderFrameProxies, as those are already created in the
> > correct order (by CreateProxiesForSiteInstance) when initializing a
> > new renderer process.
> >
> > Corresponding Blink CL: https://codereview.chromium.org/1119823003/
> >
> > BUG=478792
> >
> > Committed: https://crrev.com/134cdb8c234847ebde156e46cad95be3221dc66b
> > Cr-Commit-Position: refs/heads/master@{#328384}
>
> TBR=nasko@chromium.org,alexmos@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=478792
>
> Committed: https://crrev.com/e94c7ac058b50b1771a644b2d85652b725367bbd
> Cr-Commit-Position: refs/heads/master@{#328419}

TBR=nasko@chromium.org,piman@chromium.org
BUG=478792

Review URL: https://codereview.chromium.org/1131593003

Cr-Commit-Position: refs/heads/master@{#328591}
16 files changed:
content/browser/frame_host/frame_tree_node.cc
content/browser/frame_host/frame_tree_node.h
content/browser/frame_host/frame_tree_unittest.cc
content/browser/frame_host/render_frame_host_impl.cc
content/browser/frame_host/render_frame_host_impl.h
content/browser/frame_host/render_frame_host_manager.cc
content/browser/frame_host/render_frame_host_manager.h
content/browser/site_per_process_browsertest.cc
content/browser/web_contents/web_contents_impl.cc
content/browser/web_contents/web_contents_impl.h
content/common/frame_messages.h
content/renderer/render_frame_impl.cc
content/renderer/render_frame_impl.h
content/renderer/render_frame_impl_browsertest.cc
content/renderer/render_thread_impl.cc
content/renderer/render_thread_impl.h