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}
>
> [email protected],[email protected]
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=478792
>
> Committed: https://crrev.com/e94c7ac058b50b1771a644b2d85652b725367bbd
> Cr-Commit-Position: refs/heads/master@{#328419}
[email protected],[email protected]
BUG=478792
Review URL: https://codereview.chromium.org/1131593003
Cr-Commit-Position: refs/heads/master@{#328591}
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 1420d9c..528bb9b 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -578,6 +578,7 @@
bool for_main_frame_navigation) override;
bool CreateRenderFrameForRenderManager(RenderFrameHost* render_frame_host,
int parent_routing_id,
+ int previous_sibling_routing_id,
int proxy_routing_id) override;
void BeforeUnloadFiredFromRenderManager(
bool proceed,