Chromium Code Reviews| 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 9657e82df1be93dce379d3f726940d8254f97781..f783fb25f7b964050df4fa11d0fd966ef99755a0 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.h |
| +++ b/content/browser/frame_host/render_frame_host_manager.h |
| @@ -121,7 +121,7 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| // appropriate RenderWidgetHostView type is used. |
| virtual bool CreateRenderViewForRenderManager( |
| RenderViewHost* render_view_host, |
| - int opener_route_id, |
| + int opener_frame_routing_id, |
| int proxy_routing_id, |
| const FrameReplicationState& replicated_frame_state, |
| bool for_main_frame_navigation) = 0; |
| @@ -353,13 +353,14 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| // the frame. |
| scoped_ptr<RenderFrameHostImpl> CreateRenderFrame(SiteInstance* instance, |
| WebUIImpl* web_ui, |
| - int opener_route_id, |
| int flags, |
| int* view_routing_id_ptr); |
| // Helper method to create and initialize a RenderFrameProxyHost and return |
| - // its routing id. |
| - int CreateRenderFrameProxy(SiteInstance* instance); |
| + // its routing id. If |suppress_opener| is true, an opener frame won't be |
| + // assigned for the corresponding RenderFrameProxy even if the current |
| + // FrameTreeNode has an opener. |
| + int CreateRenderFrameProxy(SiteInstance* instance, bool suppress_opener); |
| // Creates proxies for a new child frame at FrameTreeNode |child| in all |
| // SiteInstances for which the current frame has proxies. This method is |
| @@ -414,7 +415,7 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| // of WebContentsImpl. |
| void ResetProxyHosts(); |
| - // Returns the routing id for a RenderFrameHost or RenderFrameHostProxy |
| + // Returns the routing id for a RenderFrameHost or RenderFrameProxyHost |
|
nasko
2015/07/07 16:26:21
Nice catch!
|
| // that has the given SiteInstance and is associated with this |
| // RenderFrameHostManager. Returns MSG_ROUTING_NONE if none is found. |
| int GetRoutingIdForSiteInstance(SiteInstance* site_instance); |
| @@ -462,10 +463,15 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| // this frame's FrameTree and for its opener chain in the given SiteInstance. |
| // This allows other tabs to send cross-process JavaScript calls to their |
| // opener(s) and to any other frames in the opener's FrameTree (e.g., |
| - // supporting calls like window.opener.opener.frames[x][y]). Returns the |
| - // route ID of this frame's RenderView for |instance|. |
| - // TODO(alexmos): Switch this to return RenderFrame routing IDs. |
| - int CreateOpenerProxies(SiteInstance* instance); |
| + // supporting calls like window.opener.opener.frames[x][y]). |
| + void CreateOpenerProxies(SiteInstance* instance); |
| + |
| + // Returns a routing ID for the current FrameTreeNode's opener node in the |
| + // given SiteInstance. May return a routing ID of either a RenderFrame (if |
|
nasko
2015/07/07 16:26:21
s/RenderFrame/RenderFrameHost/
alexmos
2015/07/08 04:42:18
Done.
|
| + // opener's current or pending RFH has SiteInstance |instance|) or a |
| + // RenderFrameProxy. Returns MSG_ROUTING_NONE if there is no opener, or if |
|
nasko
2015/07/07 16:26:21
s/RenderFrameProxy/RenderFrameProxyHost/
alexmos
2015/07/08 04:42:18
Done.
|
| + // the opener node doesn't have a proxy for |instance|. |
| + int GetOpenerRoutingID(SiteInstance* instance); |
| // Called on the RFHM of the inner WebContents to create a |
| // RenderFrameProxyHost in its outer WebContents's SiteInstance, |
| @@ -611,19 +617,15 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| // (2) Create proxies for the new RFH's SiteInstance in its own frame tree; |
| // (3) set any additional flags for the new RenderFrame with |
| // |create_render_frame_flags|. |
| - // Returns the opener's RVH route ID to be used for the new RenderFrame. |
| - // TODO(alexmos): switch this to return opener's RFH routing ID instead. |
| - int CreateProxiesForNewRenderFrameHost(SiteInstance* old_instance, |
| - SiteInstance* new_instance, |
| - int* create_render_frame_flags); |
| + void CreateProxiesForNewRenderFrameHost(SiteInstance* old_instance, |
| + SiteInstance* new_instance, |
| + int* create_render_frame_flags); |
| // Create swapped out RenderViews and RenderFrameProxies in the given |
| // SiteInstance for all frames on the opener chain of this frame. Same as |
| - // CreateOpenerProxies, but starts from this frame's opener, returning |
| - // MSG_ROUTING_NONE if it doesn't exist, and calling CreateOpenerProxies if |
| - // it does. |
| - // TODO(alexmos): Switch this to return RenderFrame routing IDs. |
| - int CreateOpenerProxiesIfNeeded(SiteInstance* instance); |
| + // CreateOpenerProxies, but starts from this frame's opener, calling |
| + // CreateOpenerProxies on it if it exists and returning otherwise. |
| + void CreateOpenerProxiesIfNeeded(SiteInstance* instance); |
| // Creates a RenderFrameHost and corresponding RenderViewHost if necessary. |
| scoped_ptr<RenderFrameHostImpl> CreateRenderFrameHost(SiteInstance* instance, |
| @@ -640,17 +642,16 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
| SiteInstance* new_instance, |
| int bindings); |
| - // Sets up the necessary state for a new RenderViewHost with the given opener, |
| - // if necessary. It creates a RenderFrameProxy in the target renderer process |
| - // with the given |proxy_routing_id|, which is used to route IPC messages when |
| - // in swapped out state. Returns early if the RenderViewHost has already been |
| - // initialized for another RenderFrameHost. |
| - // TODO(creis): opener_route_id is currently for the RenderViewHost but should |
| - // be for the RenderFrame, since frames can have openers. |
| + // Sets up the necessary state for a new RenderViewHost. Creates a |
| + // RenderFrameProxy in the target renderer process with the given |
| + // |proxy_routing_id|, which is used to route IPC messages when in swapped |
| + // out state. Returns early if the RenderViewHost has already been |
| + // initialized for another RenderFrameHost. If |suppress_opener| is true, |
| + // an opener won't be assigned for the RenderView's main frame. |
| bool InitRenderView(RenderViewHostImpl* render_view_host, |
| - int opener_route_id, |
| int proxy_routing_id, |
| - bool for_main_frame_navigation); |
| + bool for_main_frame_navigation, |
| + bool suppress_opener); |
| // Initialization for RenderFrameHost uses the same sequence as InitRenderView |
| // above. |