| Index: content/browser/frame_host/render_frame_host_manager.h
|
| diff --git a/content/browser/frame_host/render_frame_host_manager.h b/content/browser/frame_host/render_frame_host_manager.h
|
| index 6a5bc8bcd97a53dfb9a67be068833326ac40ea64..20c41ccbe6d4e72698060ab600ecf489d02ff918 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.h
|
| +++ b/content/browser/frame_host/render_frame_host_manager.h
|
| @@ -171,6 +171,12 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // hidden state.
|
| virtual bool IsHidden() = 0;
|
|
|
| + // If the delegate is an inner WebContents, this method returns the
|
| + // FrameTreeNode ID of the frame in the outer WebContents which hosts
|
| + // the inner WebContents. Returns FrameTreeNode::kFrameTreeNodeInvalidID
|
| + // if the delegate does not have an outer WebContents.
|
| + virtual int GetOuterDelegateFrameTreeNodeID() = 0;
|
| +
|
| protected:
|
| virtual ~Delegate() {}
|
| };
|
| @@ -216,8 +222,31 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // there is no current one.
|
| RenderWidgetHostView* GetRenderWidgetHostView() const;
|
|
|
| + // Returns whether this manager belongs to a FrameTreeNode that is a main
|
| + // frame in an inner WebContents.
|
| + // TODO(lazyboy): Make this work correctly for subframes inside inner
|
| + // WebContents too.
|
| + bool ForInnerDelegate();
|
| +
|
| + // Returns the RenderWidgetHost of the outer WebContents (if any) that can be
|
| + // used to fetch the last keyboard event.
|
| + // TODO(lazyboy): This can be removed once input events are sent directly to
|
| + // remote frames.
|
| + RenderWidgetHostImpl* GetOuterRenderWidgetHostForKeyboardInput();
|
| +
|
| RenderFrameProxyHost* GetProxyToParent();
|
|
|
| + // Returns the proxy to inner WebContents in the outer WebContents's
|
| + // SiteInstance. Returns nullptr if this WebContents isn't part of inner/outer
|
| + // relationship.
|
| + RenderFrameProxyHost* GetProxyToOuterDelegate();
|
| +
|
| + // Removes the FrameTreeNode in the outer WebContents that represents this
|
| + // FrameTreeNode.
|
| + // TODO(lazyboy): This does not belong to RenderFrameHostManager, move it to
|
| + // somehwere else.
|
| + void RemoveOuterDelegateFrame();
|
| +
|
| // Returns the pending RenderFrameHost, or NULL if there is no pending one.
|
| RenderFrameHostImpl* pending_frame_host() const {
|
| return pending_render_frame_host_.get();
|
| @@ -426,6 +455,18 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // TODO(alexmos): Switch this to return RenderFrame routing IDs.
|
| int CreateOpenerProxies(SiteInstance* instance);
|
|
|
| + // Called on the RFHM of the inner WebContents to create a
|
| + // RenderFrameProxyHost in its outer WebContents's SiteInstance,
|
| + // |outer_contents_site_instance|. The frame in outer WebContents that is
|
| + // hosting the inner WebContents is |render_frame_host|, and the frame will
|
| + // be swapped out with the proxy.
|
| + void CreateOuterDelegateProxy(SiteInstance* outer_contents_site_instance,
|
| + RenderFrameHostImpl* render_frame_host);
|
| +
|
| + // Sets the child RenderWidgetHostView for this frame, which must be part of
|
| + // an inner WebContents.
|
| + void SetRWHViewForInnerContents(RenderWidgetHostView* child_rwhv);
|
| +
|
| private:
|
| friend class FrameTreeVisualizer;
|
| friend class NavigatorTestWithBrowserSideNavigation;
|
|
|