| 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 20f9a5159b51136f4a24deba1d2401ebe0028f75..aadd1f6e10439ef0f1809569d261425deb1759c2 100644
|
| --- a/content/browser/frame_host/navigator_impl.cc
|
| +++ b/content/browser/frame_host/navigator_impl.cc
|
| @@ -764,10 +764,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
|
| @@ -808,6 +810,7 @@ void NavigatorImpl::CancelNavigation(FrameTreeNode* frame_tree_node) {
|
| CHECK(CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableBrowserSideNavigation));
|
| navigation_request_map_.erase(frame_tree_node->frame_tree_node_id());
|
| + frame_tree_node->render_manager()->CleanUpNavigation();
|
| }
|
|
|
| // PlzNavigate
|
|
|