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 fddfd9c8de20f9fb2a815d40584b8d0cbfc21ee9..68953cc817abf6d559e88ee3021fbec7a8e9920e 100644 |
--- a/content/browser/frame_host/render_frame_host_manager.h |
+++ b/content/browser/frame_host/render_frame_host_manager.h |
@@ -18,6 +18,7 @@ |
#include "content/public/common/referrer.h" |
struct FrameHostMsg_BeginNavigation_Params; |
+struct FrameMsg_Navigate_Params; |
namespace content { |
class BrowserContext; |
@@ -187,6 +188,13 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
// could not be created. |
RenderFrameHostImpl* Navigate(const NavigationEntryImpl& entry); |
+ // As part of the PlzNavigate refactoring project, sends a RequestNavigation |
+ // IPC to the renderer to ask it to navigate. If no live renderer is present, |
+ // then the navigation request will be sent directly to the |
+ // ResourceDispatcherHost. |
+ bool RequestNavigation(const NavigationEntryImpl& entry, |
+ const FrameMsg_Navigate_Params& navigate_params); |
+ |
// Instructs the various live views to stop. Called when the user directed the |
// page to stop loading. |
void Stop(); |
@@ -246,12 +254,15 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
// Helper method to create and initialize a RenderFrameHost. If |swapped_out| |
// is true, it will be initially placed on the swapped out hosts list. |
+ // Else if |is_speculative| is true, then it will used as a speculatively |
+ // spawned renderer in the PlzNavigate navigation refactoring project. |
// Otherwise, it will be used for a pending cross-site navigation. |
// Returns the routing id of the *view* associated with the frame. |
int CreateRenderFrame(SiteInstance* instance, |
int opener_route_id, |
bool swapped_out, |
- bool hidden); |
+ bool hidden, |
+ bool is_speculative); |
// Sets the passed passed interstitial as the currently showing interstitial. |
// |interstitial_page| should be non NULL (use the remove_interstitial_page |
@@ -413,6 +424,13 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
int proxy_routing_id, |
bool for_main_frame); |
+ // Initializes |dest_render_frame_host| and |render_frame_host_| if necessary |
+ // before navigating. |
+ bool InitRFHsBeforeNavigation(RenderFrameHostImpl* dest_render_frame_host); |
ppi
2014/07/16 14:28:09
nit: if no other method here is named similarily,
clamy
2014/07/16 15:44:53
Done.
|
+ |
+ // Returns the SiteInstance to use for the navigation. |
+ SiteInstance* GetSiteInstanceForNavigation(const NavigationEntryImpl& entry); |
+ |
// 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. |
@@ -482,6 +500,11 @@ class CONTENT_EXPORT RenderFrameHostManager : public NotificationObserver { |
// headers. |
scoped_ptr<GlobalRequestID> response_started_id_; |
+ // A RenderFrameHost speculatively created when receiving a navigation |
+ // request. It should be used or deleted when the current navigation request |
+ // commits. This is part of the PlzNavigate navigation refactoring project. |
+ scoped_ptr<RenderFrameHostImpl> speculative_render_frame_host_; |
+ |
// If either of these is non-NULL, the pending navigation is to a chrome: |
// page. The scoped_ptr is used if pending_web_ui_ != web_ui_, the WeakPtr is |
// used for when they reference the same object. If either is non-NULL, the |