Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_manager.cc |
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc |
| index e19b9fa3212da70629e2d0e8f8c9ed8b1fc4e978..b11364e69ff24a98af173e7343e875ffdb8cb5a5 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager.cc |
| @@ -913,6 +913,15 @@ void RenderFrameHostManager::DiscardUnusedFrame( |
| render_frame_host->SwapOut(proxy, false); |
| proxy->TakeFrameHostOwnership(render_frame_host.Pass()); |
| + } else { |
| + // If |render_frame_host| is the RenderViewHost's main frame, it must |
| + // be cleared, as it will be deleted at the end of this method. |
|
Charlie Reis
2015/10/16 17:02:23
s/, it must be cleared/, then the RenderViewHost m
|
| + if (frame_tree_node_->IsMainFrame() && |
| + render_frame_host->render_view_host()->GetMainFrame() == |
| + render_frame_host.get()) { |
| + render_frame_host->render_view_host()->set_main_frame_routing_id( |
| + MSG_ROUTING_NONE); |
| + } |
| } |
| } |
| @@ -1830,6 +1839,12 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( |
| } |
| if (frame_tree_node_->IsMainFrame()) { |
| + if (!render_view_host->GetMainFrame()) { |
|
Charlie Reis
2015/10/16 17:02:23
What would happen if it had a main frame routing I
|
| + CHECK(!render_view_host->is_active()); |
| + render_view_host->set_main_frame_routing_id( |
| + new_render_frame_host->GetRoutingID()); |
| + } |
| + |
| success = InitRenderView(render_view_host, proxy_routing_id); |
| // If we are reusing the RenderViewHost and it doesn't already have a |