Index: content/browser/web_contents/web_contents_impl.h |
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h |
index 005b59137c8b24e68ce6b4ef353f1d8f82679304..65c2bc86a83194c7d2377d3efaefc9fb5d72bfdb 100644 |
--- a/content/browser/web_contents/web_contents_impl.h |
+++ b/content/browser/web_contents/web_contents_impl.h |
@@ -279,6 +279,9 @@ class CONTENT_EXPORT WebContentsImpl |
void WasHidden() override; |
bool NeedToFireBeforeUnload() override; |
void DispatchBeforeUnload(bool for_cross_site_transition) override; |
+ void AttachToOuterWebContentsFrame( |
+ WebContents* outer_web_contents, |
+ RenderFrameHost* outer_contents_frame) override; |
void Stop() override; |
WebContents* Clone() override; |
void ReloadFocusedFrame(bool ignore_cache) override; |
@@ -594,6 +597,7 @@ class CONTENT_EXPORT WebContentsImpl |
bool FocusLocationBarByDefault() override; |
void SetFocusToLocationBar(bool select_all) override; |
bool IsHidden() override; |
+ int GetOuterDelegateFrameTreeNodeID() override; |
// NotificationObserver ------------------------------------------------------ |
@@ -725,6 +729,34 @@ class CONTENT_EXPORT WebContentsImpl |
class DestructionObserver; |
+ // Represents a WebContents node in a tree of WebContents structure. |
+ // |
+ // Two WebContents with separate FrameTrees can be connected by |
+ // outer/inner relationship using this class. Note that their FrameTrees |
+ // still remain disjoint. |
+ // The parent is referred to as "outer WebContents" and the descendents are |
+ // referred to as "inner WebContents". |
Charlie Reis
2015/06/18 00:13:18
Can you add a bit about whether the outer WebConte
lazyboy
2015/06/18 22:45:13
Done.
|
+ struct WebContentsTreeNode { |
+ public: |
+ WebContentsTreeNode(); |
+ ~WebContentsTreeNode(); |
+ |
+ typedef std::set<WebContentsTreeNode*> ChildrenSet; |
+ |
+ void ConnectToOuterWebContents(WebContentsImpl* outer_web_contents, |
+ RenderFrameHostImpl* outer_contents_frame); |
+ |
+ int outer_contents_frame_tree_node_id() { |
+ return outer_contents_frame_tree_node_id_; |
+ } |
+ WebContentsImpl* outer_web_contents() { return outer_web_contents_; } |
+ |
+ private: |
+ int outer_contents_frame_tree_node_id_; |
Charlie Reis
2015/06/18 00:13:19
This should come after outer_web_contents_, since
lazyboy
2015/06/18 22:45:13
Done.
|
+ WebContentsImpl* outer_web_contents_; |
+ ChildrenSet inner_web_contents_tree_nodes_; |
+ }; |
+ |
// See WebContents::Create for a description of these parameters. |
WebContentsImpl(BrowserContext* browser_context); |
@@ -1036,6 +1068,10 @@ class CONTENT_EXPORT WebContentsImpl |
// Manages the frame tree of the page and process swaps in each node. |
FrameTree frame_tree_; |
+ // If this WebContents is part of a "tree of WebContents", then this contains |
+ // information about the structure. |
+ scoped_ptr<WebContentsTreeNode> node_; |
+ |
// SavePackage, lazily created. |
scoped_refptr<SavePackage> save_package_; |