Chromium Code Reviews| 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..15591aa0ec3a468e876a5202dc88a43ebaab85ab 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 root is referred to as "outer WebContents" and the descendents are |
|
nasko
2015/06/15 23:00:13
It is not just the root that will be outer WebCont
lazyboy
2015/06/16 17:59:52
That's right, I've changed root -> parent.
|
| + // referred to as "inner WebContents". |
| + 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_; |
|
nasko
2015/06/15 23:00:14
nit: Should this be const? The outer WebContents a
lazyboy
2015/06/16 17:59:52
You can removeChild(<webview>) and then appendChil
|
| + 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_; |