| 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 c40cac4db9e694ea8fe43b6cb7bbe78ca7336497..ae8d9f9ddc4ff6cd18c405da388ebe0e6334e09a 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.h
|
| +++ b/content/browser/frame_host/render_frame_host_manager.h
|
| @@ -26,14 +26,13 @@ namespace content {
|
| class BrowserContext;
|
| class CrossProcessFrameConnector;
|
| class CrossSiteTransferringRequest;
|
| -class InterstitialPageImpl;
|
| class FrameTreeNode;
|
| +class InterstitialPageImpl;
|
| class NavigationControllerImpl;
|
| class NavigationEntry;
|
| class NavigationEntryImpl;
|
| class RenderFrameHost;
|
| class RenderFrameHostDelegate;
|
| -class RenderFrameHost;
|
| class RenderFrameHostImpl;
|
| class RenderFrameHostManagerTest;
|
| class RenderFrameProxyHost;
|
| @@ -148,7 +147,8 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // Creates a WebUI object for the given URL if one applies. Ownership of the
|
| // returned pointer will be passed to the caller. If no WebUI applies,
|
| // returns NULL.
|
| - virtual WebUIImpl* CreateWebUIForRenderManager(const GURL& url) = 0;
|
| + virtual scoped_ptr<WebUIImpl> CreateWebUIForRenderManager(
|
| + const GURL& url) = 0;
|
|
|
| // Returns the navigation entry of the current navigation, or NULL if there
|
| // is none.
|
| @@ -231,10 +231,6 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| pending_and_current_web_ui_.get();
|
| }
|
|
|
| - // Sets the pending Web UI for the pending navigation, ensuring that the
|
| - // bindings are appropriate compared to |bindings|.
|
| - void SetPendingWebUI(const GURL& url, int bindings);
|
| -
|
| // Called when we want to instruct the renderer to navigate to the given
|
| // navigation entry. It may create a new RenderFrameHost or re-use an existing
|
| // one. The RenderFrameHost to navigate will be returned. Returns NULL if one
|
| @@ -297,11 +293,22 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // Called when a renderer sets its opener to null.
|
| void DidDisownOpener(RenderFrameHost* render_frame_host);
|
|
|
| - // Helper method to create and initialize a RenderFrameHost. If |flags|
|
| - // has the CREATE_RF_SWAPPED_OUT bit set from the CreateRenderFrameFlags
|
| - // enum, it will initially be placed on the swapped out hosts list.
|
| - // Returns the routing id of the *view* associated with the frame.
|
| - int CreateRenderFrame(SiteInstance* instance, int opener_route_id, int flags);
|
| + // Sets the pending Web UI for the pending navigation, ensuring that the
|
| + // bindings are appropriate compared to |bindings|.
|
| + void SetPendingWebUI(const GURL& url, int bindings);
|
| +
|
| + // Creates and initializes a RenderFrameHost. The |web_ui| is an optional
|
| + // input parameter used to double check bindings when swapping back in a
|
| + // previously existing RenderFrameHost. If |flags| has the
|
| + // CREATE_RF_SWAPPED_OUT bit set from the CreateRenderFrameFlags enum, it will
|
| + // initially be placed on the swapped out hosts list. If |view_routing_id_ptr|
|
| + // is not nullptr it will be set to the routing id of the view associated with
|
| + // 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.
|
| @@ -401,6 +408,10 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| const GURL& new_effective_url,
|
| bool new_is_view_source_mode) const;
|
|
|
| + // Creates a new Web UI, ensuring that the bindings are appropriate compared
|
| + // to |bindings|.
|
| + scoped_ptr<WebUIImpl> CreateWebUI(const GURL& url, int bindings);
|
| +
|
| // Returns true if it is safe to reuse the current WebUI when navigating from
|
| // |current_entry| to |new_url|.
|
| bool ShouldReuseWebUI(
|
| @@ -435,12 +446,19 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| SiteInstance* current_instance,
|
| NavigationEntry* current_entry);
|
|
|
| - // Creates a new RenderFrameHostImpl for the |new_instance| while respecting
|
| - // the opener route if needed and stores it in pending_render_frame_host_.
|
| - void CreateRenderFrameHostForNewSiteInstance(
|
| - SiteInstance* old_instance,
|
| - SiteInstance* new_instance,
|
| - bool is_main_frame);
|
| + // Creates a new RenderFrameHostImpl for the |new_instance| and assign it to
|
| + // |pending_render_frame_host_| while respecting the opener route if needed
|
| + // and stores it in pending_render_frame_host_.
|
| + void CreatePendingRenderFrameHost(SiteInstance* old_instance,
|
| + SiteInstance* new_instance,
|
| + bool is_main_frame);
|
| +
|
| + // Ensure that we have created RFHs for the new RFH's opener chain if
|
| + // we are staying in the same BrowsingInstance. This allows the new RFH
|
| + // to send cross-process script calls to its opener(s). Returns the opener
|
| + // route ID to be used for the new RenderView to be created.
|
| + int CreateOpenerRenderViewsIfNeeded(SiteInstance* old_instance,
|
| + SiteInstance* new_instance);
|
|
|
| // Creates a RenderFrameHost and corresponding RenderViewHost if necessary.
|
| scoped_ptr<RenderFrameHostImpl> CreateRenderFrameHost(SiteInstance* instance,
|
| @@ -474,6 +492,10 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver {
|
| // deleted or put on the pending delete list during this call.
|
| void SwapOutOldFrame(scoped_ptr<RenderFrameHostImpl> old_render_frame_host);
|
|
|
| + // Discards a RenderFrameHost that was never made active (for active ones
|
| + // SwapOutOldFrame is used instead).
|
| + void DiscardUnusedFrame(scoped_ptr<RenderFrameHostImpl> render_frame_host);
|
| +
|
| // Holds |render_frame_host| until it can be deleted when its swap out ACK
|
| // arrives.
|
| void MoveToPendingDeleteHosts(
|
|
|