summaryrefslogtreecommitdiffstats
path: root/content/browser/frame_host/frame_tree_node.h
diff options
context:
space:
mode:
authoralexmos <alexmos@chromium.org>2015-05-05 12:50:28 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-05 19:51:10 +0000
commit134cdb8c234847ebde156e46cad95be3221dc66b (patch)
treebf51165c4e5d12ffd20c81f4a871342a7ccd2152 /content/browser/frame_host/frame_tree_node.h
parent51d04a1d341fe739beaff1528095f025a66f3fcc (diff)
downloadchromium_src-134cdb8c234847ebde156e46cad95be3221dc66b.zip
chromium_src-134cdb8c234847ebde156e46cad95be3221dc66b.tar.gz
chromium_src-134cdb8c234847ebde156e46cad95be3221dc66b.tar.bz2
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 Review URL: https://codereview.chromium.org/1113393004 Cr-Commit-Position: refs/heads/master@{#328384}
Diffstat (limited to 'content/browser/frame_host/frame_tree_node.h')
-rw-r--r--content/browser/frame_host/frame_tree_node.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/content/browser/frame_host/frame_tree_node.h b/content/browser/frame_host/frame_tree_node.h
index 4825082..4e98559 100644
--- a/content/browser/frame_host/frame_tree_node.h
+++ b/content/browser/frame_host/frame_tree_node.h
@@ -124,6 +124,10 @@ class CONTENT_EXPORT FrameTreeNode {
bool IsDescendantOf(FrameTreeNode* other) const;
+ // Return the node immediately preceding this node in its parent's
+ // |children_|, or nullptr if there is no such node.
+ FrameTreeNode* PreviousSibling() const;
+
// Returns true if this node is in a loading state.
bool IsLoading() const;