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 af88aa5ccf2674c3b2dab2213a7483dde36e62a7..a49398537831fd34ba132257c937796251acf143 100644 |
--- a/content/browser/frame_host/render_frame_host_manager.h |
+++ b/content/browser/frame_host/render_frame_host_manager.h |
@@ -175,6 +175,11 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
// hidden state. |
virtual bool IsHidden() = 0; |
+ // Returns the FrameTreeNode id of the outer WebContents that is hosting |
+ // this (inner) WebContents. |
+ // Returns -1 if this WebContents does not have an outer WebContents. |
+ virtual int GetOuterDelegateFrameTreeNodeID() = 0; |
+ |
protected: |
virtual ~Delegate() {} |
}; |
@@ -220,7 +225,21 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
// there is no current one. |
RenderWidgetHostView* GetRenderWidgetHostView() const; |
+ // Returns the RVH of outer WebContents that can used to fetch the last |
nasko
2015/05/28 22:13:46
nit: RenderViewHost of the outer
lazyboy
2015/05/29 00:02:24
Done.
|
+ // keyboard event. |
+ // TODO(lazyboy): This can be removed once we input events are sent directly |
nasko
2015/05/28 22:13:46
nit: Extra "we"?
nit: Input events won't be sent t
lazyboy
2015/05/29 00:02:24
Done.
|
+ // to remote frames. |
+ RenderViewHostImpl* GetOuterRenderViewHostForKeyboardInput(); |
+ |
RenderFrameProxyHost* GetProxyToParent(); |
+ RenderFrameProxyHost* GetProxyToOuterDelegate(); |
+ |
+ // 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 pending RenderFrameHost, or NULL if there is no pending one. |
RenderFrameHostImpl* pending_frame_host() const { |
@@ -414,6 +433,17 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
RenderViewHostImpl* render_view_host, |
SiteInstance* instance); |
+ // Called on the RFHM of the inner WebContents to create a proxy for this |
+ // inner WebContents's frame in its outer WebContents's process. |
+ // Returns the proxy routing ID. |
+ int CreateOuterDelegateProxy(SiteInstance* outer_contents_site_instance); |
+ |
+ // Swaps the frame with the given proxy. |
+ void SwapFrameWithProxy(int proxy_to_outer_delegate_routing_id); |
+ |
+ // Sets the child RWHV for this frame that is part of an inner WebContents. |
+ void SetRWHViewForInnerContents(RenderWidgetHostView* child_rwhv); |
+ |
private: |
friend class FrameTreeVisualizer; |
friend class NavigatorTestWithBrowserSideNavigation; |