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 94a4998b62f492d944110a84fa2545524871928b..b1fdf73bf52722fbe7df3c42c6b652a6fd29bb69 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.h |
| +++ b/content/browser/frame_host/render_frame_host_manager.h |
| @@ -24,6 +24,7 @@ class NavigationControllerImpl; |
| class NavigationEntry; |
| class NavigationEntryImpl; |
| class RenderFrameHostDelegate; |
| +class RenderFrameHostImpl; |
| class RenderFrameHostManagerTest; |
| class RenderViewHost; |
| class RenderViewHostImpl; |
| @@ -126,11 +127,16 @@ class CONTENT_EXPORT RenderFrameHostManager |
| int routing_id, |
| int main_frame_routing_id); |
| - // Returns the currently active RenderViewHost. |
| + // Returns the currently active RenderFrameHost. |
| // |
| // This will be non-NULL between Init() and Shutdown(). You may want to NULL |
| // check it in many cases, however. Windows can send us messages during the |
| // destruction process after it has been shut down. |
| + RenderFrameHostImpl* current_frame() const { |
| + return render_frame_host_; |
| + } |
| + |
| + // TODO(creis): Remove this when we no longer use RVH for navigation. |
| RenderViewHostImpl* current_host() const; |
| // Returns the view associated with the current RenderViewHost, or NULL if |
| @@ -138,6 +144,9 @@ class CONTENT_EXPORT RenderFrameHostManager |
| RenderWidgetHostView* GetRenderWidgetHostView() const; |
| // Returns the pending render view host, or NULL if there is no pending one. |
|
nasko
2013/12/12 02:22:12
"render frame host"
Charlie Reis
2013/12/12 18:19:30
Oops, done.
|
| + RenderFrameHostImpl* pending_render_frame_host() const; |
|
nasko
2013/12/12 02:22:12
This seems a bit inconsistent: current_frame() vs
Charlie Reis
2013/12/12 18:19:30
current_frame_host() and pending_frame_host() soun
|
| + |
| + // TODO(creis): Remove this when we no longer use RVH for navigation. |
| RenderViewHostImpl* pending_render_view_host() const; |
| // Returns the current committed Web UI or NULL if none applies. |
| @@ -183,13 +192,13 @@ class CONTENT_EXPORT RenderFrameHostManager |
| // Called when a renderer sets its opener to null. |
| void DidDisownOpener(RenderViewHost* render_view_host); |
| - // Helper method to create a RenderViewHost. If |swapped_out| is true, it |
| + // Helper method to create a RenderFrameHost. If |swapped_out| is true, it |
| // will be initially placed on the swapped out hosts list. Otherwise, it |
| // will be used for a pending cross-site navigation. |
| - int CreateRenderView(SiteInstance* instance, |
| - int opener_route_id, |
| - bool swapped_out, |
| - bool hidden); |
| + int CreateRenderFrame(SiteInstance* instance, |
| + int opener_route_id, |
| + bool swapped_out, |
| + bool hidden); |
| // Called when a provisional load on the given renderer is aborted. |
| void RendererAbortedProvisionalLoad(RenderViewHost* render_view_host); |
| @@ -236,12 +245,16 @@ class CONTENT_EXPORT RenderFrameHostManager |
| // Called when a RenderViewHost is about to be deleted. |
| void RenderViewDeleted(RenderViewHost* rvh); |
| - // Returns whether the given RenderViewHost is on the list of swapped out |
| - // RenderViewHosts. |
| - bool IsOnSwappedOutList(RenderViewHost* rvh) const; |
| + // Returns whether the given RenderFrameHost (or its associated |
| + // RenderViewHost) is on the list of swapped out RenderFrameHosts. |
| + bool IsRVHOnSwappedOutList(RenderViewHostImpl* rvh) const; |
| + bool IsOnSwappedOutList(RenderFrameHostImpl* rfh) const; |
| - // Returns the swapped out RenderViewHost for the given SiteInstance, if any. |
| - RenderViewHostImpl* GetSwappedOutRenderViewHost(SiteInstance* instance); |
| + // Returns the swapped out RenderViewHost or RenderFrameHost for the given |
| + // SiteInstance, if any. |
| + RenderViewHostImpl* GetSwappedOutRenderViewHost(SiteInstance* instance) const; |
| + RenderFrameHostImpl* GetSwappedOutRenderFrameHost( |
| + SiteInstance* instance) const; |
| // Runs the unload handler in the current page, when we know that a pending |
| // cross-process navigation is going to commit. We may initiate a transfer |
| @@ -253,7 +266,7 @@ class CONTENT_EXPORT RenderFrameHostManager |
| friend class TestWebContents; |
| // Tracks information about a navigation while a cross-process transition is |
| - // in progress, in case we need to transfer it to a new RenderViewHost. |
| + // in progress, in case we need to transfer it to a new RenderFrameHost. |
| struct PendingNavigationParams { |
| PendingNavigationParams(); |
| PendingNavigationParams(const GlobalRequestID& global_request_id, |
| @@ -325,60 +338,65 @@ class CONTENT_EXPORT RenderFrameHostManager |
| SiteInstance* current_instance, |
| bool force_browsing_instance_swap); |
| - // Sets up the necessary state for a new RenderViewHost with the given opener. |
| + // Sets up the necessary state for a new RenderFrameHost with the given |
| + // opener. This also initializes the RenderView if necessary. |
|
nasko
2013/12/12 02:22:12
nit: "RenderViewHost" here and next line.
Charlie Reis
2013/12/12 18:19:30
Done.
I looked closer and we're not really doing
|
| + // TODO(creis): opener_route_id is currently for the RenderView but should be |
| + // for the RenderFrame, since frames can have openers. |
| bool InitRenderView(RenderViewHost* render_view_host, int opener_route_id); |
| - // Sets the pending RenderViewHost/WebUI to be the active one. Note that this |
| - // doesn't require the pending render_view_host_ pointer to be non-NULL, since |
| - // there could be Web UI switching as well. Call this for every commit. |
| + // Sets the pending RenderFrameHost/WebUI to be the active one. Note that this |
| + // doesn't require the pending render_frame_host_ pointer to be non-NULL, |
| + // since there could be Web UI switching as well. Call this for every commit. |
| void CommitPending(); |
| - // Shutdown all RenderViewHosts in a SiteInstance. This is called |
| - // to shutdown views when all the views in a SiteInstance are |
| - // confirmed to be swapped out. |
| - void ShutdownRenderViewHostsInSiteInstance(int32 site_instance_id); |
| + // Shutdown all RenderFrameHosts in a SiteInstance. This is called to shutdown |
| + // frames when all the frames in a SiteInstance are confirmed to be swapped |
| + // out. |
| + void ShutdownRenderFrameHostsInSiteInstance(int32 site_instance_id); |
| // Helper method to terminate the pending RenderViewHost. |
| void CancelPending(); |
| - RenderViewHostImpl* UpdateRendererStateForNavigate( |
| + RenderFrameHostImpl* UpdateRendererStateForNavigate( |
| const NavigationEntryImpl& entry); |
| // Called when a renderer process is starting to close. We should not |
| - // schedule new navigations in its swapped out RenderViewHosts after this. |
| + // schedule new navigations in its swapped out RenderFrameHosts after this. |
| void RendererProcessClosing(RenderProcessHost* render_process_host); |
| // Our delegate, not owned by us. Guaranteed non-NULL. |
| Delegate* delegate_; |
| - // Whether a navigation requiring different RenderView's is pending. This is |
| - // either cross-site request is (in the new process model), or when required |
| - // for the view type (like view source versus not). |
| + // Whether a navigation requiring different RenderFrameHosts is pending. This |
| + // is either for cross-site requests or when required for the process type |
| + // (like WebUI). |
| bool cross_navigation_pending_; |
| - // Implemented by the owner of this class, these delegates are installed into |
| - // all the RenderViewHosts that we create. |
| + // Implemented by the owner of this class. These delegates are installed into |
| + // all the RenderFrameHosts that we create. |
| RenderFrameHostDelegate* render_frame_delegate_; |
| RenderViewHostDelegate* render_view_delegate_; |
| RenderWidgetHostDelegate* render_widget_delegate_; |
| - // Our RenderView host and its associated Web UI (if any, will be NULL for |
| - // non-DOM-UI pages). This object is responsible for all communication with |
| - // a child RenderView instance. |
| - RenderViewHostImpl* render_view_host_; |
| + // Our RenderFrameHost and its associated Web UI (if any, will be NULL for |
| + // non-WebUI pages). This object is responsible for all communication with |
| + // a child RenderFrame instance. |
| + // For now, RenderFrameHost keeps a RenderViewHost in its SiteInstance alive. |
| + // Eventually, RenderViewHost will be replaced with a page context. |
| + RenderFrameHostImpl* render_frame_host_; |
| scoped_ptr<WebUIImpl> web_ui_; |
| - // A RenderViewHost used to load a cross-site page. This remains hidden |
| + // A RenderFrameHost used to load a cross-site page. This remains hidden |
| // while a cross-site request is pending until it calls DidNavigate. It may |
| // have an associated Web UI, in which case the Web UI pointer will be non- |
| // NULL. |
| // |
| // The |pending_web_ui_| may be non-NULL even when the |
| - // |pending_render_view_host_| is NULL. This will happen when we're |
| - // transitioning between two Web UI pages: the RVH won't be swapped, so the |
| + // |pending_render_frame_host_| is NULL. This will happen when we're |
| + // transitioning between two Web UI pages: the RFH won't be swapped, so the |
| // pending pointer will be unused, but there will be a pending Web UI |
| // associated with the navigation. |
| - RenderViewHostImpl* pending_render_view_host_; |
| + RenderFrameHostImpl* pending_render_frame_host_; |
| // Tracks information about any current pending cross-process navigation. |
| scoped_ptr<PendingNavigationParams> pending_nav_params_; |
| @@ -390,10 +408,10 @@ class CONTENT_EXPORT RenderFrameHostManager |
| scoped_ptr<WebUIImpl> pending_web_ui_; |
| base::WeakPtr<WebUIImpl> pending_and_current_web_ui_; |
| - // A map of site instance ID to swapped out RenderViewHosts. This may include |
| - // pending_render_view_host_ for navigations to existing entries. |
| - typedef base::hash_map<int32, RenderViewHostImpl*> RenderViewHostMap; |
| - RenderViewHostMap swapped_out_hosts_; |
| + // A map of site instance ID to swapped out RenderFrameHosts. This may |
| + // include pending_render_frame_host_ for navigations to existing entries. |
| + typedef base::hash_map<int32, RenderFrameHostImpl*> RenderFrameHostMap; |
| + RenderFrameHostMap swapped_out_hosts_; |
| // The intersitial page currently shown if any, not own by this class |
| // (the InterstitialPage is self-owned, it deletes itself when hidden). |