| 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 bffa888df9ff1d3da747d2bdef9ff9017f8c13e1..6c1439b11d0dcbc7f21c6d29a47cea0cf530581f 100644
|
| --- a/content/browser/web_contents/web_contents_impl.h
|
| +++ b/content/browser/web_contents/web_contents_impl.h
|
| @@ -283,6 +283,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;
|
| @@ -599,6 +602,7 @@ class CONTENT_EXPORT WebContentsImpl
|
| bool FocusLocationBarByDefault() override;
|
| void SetFocusToLocationBar(bool select_all) override;
|
| bool IsHidden() override;
|
| + int GetOuterDelegateFrameTreeNodeID() override;
|
|
|
| // NotificationObserver ------------------------------------------------------
|
|
|
| @@ -730,6 +734,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
|
| + // 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_;
|
| + WebContentsImpl* outer_web_contents_;
|
| + ChildrenSet inner_web_contents_tree_nodes_;
|
| + };
|
| +
|
| // See WebContents::Create for a description of these parameters.
|
| WebContentsImpl(BrowserContext* browser_context,
|
| WebContentsImpl* opener);
|
| @@ -1046,6 +1078,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_;
|
|
|
|
|