Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index 6a7b78d5ad8a1d57318d0a219e390e5554370582..b7fdca05518ed5497cc886c7786385ede506e6a2 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -533,7 +533,8 @@ void NavigatorImpl::DidNavigate( |
if (!use_site_per_process) |
frame_tree->root()->render_manager()->DidNavigateFrame( |
- render_frame_host, params.gesture == NavigationGestureUser); |
+ render_frame_host, params.gesture == NavigationGestureUser, |
+ params.was_within_same_page); |
} |
// Save the origin of the new page. Do this before calling |
@@ -549,7 +550,8 @@ void NavigatorImpl::DidNavigate( |
if (use_site_per_process) { |
FrameTreeNode* frame = render_frame_host->frame_tree_node(); |
frame->render_manager()->DidNavigateFrame( |
- render_frame_host, params.gesture == NavigationGestureUser); |
+ render_frame_host, params.gesture == NavigationGestureUser, |
+ params.was_within_same_page); |
} |
// Update the site of the SiteInstance if it doesn't have one yet, unless |
@@ -776,10 +778,12 @@ void NavigatorImpl::OnBeginNavigation( |
info->parent_is_main_frame = !frame_tree_node->parent() ? |
false : frame_tree_node->parent()->IsMainFrame(); |
- // TODO(clamy): Inform the RenderFrameHostManager that a navigation is about |
- // to begin, so that it can speculatively spawn a new renderer if needed. |
- |
+ // First start the request on the IO thread. |
navigation_request->BeginNavigation(info.Pass(), params.request_body); |
+ |
+ // Then notify the RenderFrameHostManager so it can speculatively create a |
+ // renderer in parallel. |
+ frame_tree_node->render_manager()->BeginNavigation(params, common_params); |
} |
// PlzNavigate |
@@ -820,6 +824,7 @@ void NavigatorImpl::CancelNavigation(FrameTreeNode* frame_tree_node) { |
CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableBrowserSideNavigation)); |
navigation_request_map_.erase(frame_tree_node->frame_tree_node_id()); |
+ frame_tree_node->render_manager()->CleanUpNavigation(); |
} |
// PlzNavigate |