Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: content/browser/frame_host/render_frame_host_manager.h

Issue 972313002: Make <webview> use out-of-process iframe architecture. (Closed) Base URL: ssh://saopaulo.wat/mnt/dev/shared/src@testoopif2z-better-chrome
Patch Set: address all comments from Nasko and Charlie, minus is_loading Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698