Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 666563005: Set up Mojo connection when RenderFrameHost is reused for new RenderFrame (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/render_frame_host_manager.h" 5 #include "content/browser/frame_host/render_frame_host_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 // Note: we don't call InitRenderView here because we are navigating away 179 // Note: we don't call InitRenderView here because we are navigating away
180 // soon anyway, and we don't have the NavigationEntry for this host. 180 // soon anyway, and we don't have the NavigationEntry for this host.
181 delegate_->CreateRenderViewForRenderManager( 181 delegate_->CreateRenderViewForRenderManager(
182 render_frame_host_->render_view_host(), MSG_ROUTING_NONE, 182 render_frame_host_->render_view_host(), MSG_ROUTING_NONE,
183 MSG_ROUTING_NONE, frame_tree_node_->IsMainFrame()); 183 MSG_ROUTING_NONE, frame_tree_node_->IsMainFrame());
184 } 184 }
185 185
186 // If the renderer crashed, then try to create a new one to satisfy this 186 // If the renderer crashed, then try to create a new one to satisfy this
187 // navigation request. 187 // navigation request.
188 if (!dest_render_frame_host->IsRenderFrameLive()) { 188 if (!dest_render_frame_host->IsRenderFrameLive()) {
189 // Instruct the destination render frame host to set up a Mojo connection
190 // with the new render frame if necessary.
191 dest_render_frame_host->SetUpMojoIfNeeded();
nasko 2014/10/23 15:59:08 This should move below the InitRenderView call.
blundell 2014/10/24 14:42:55 It's actually important that this be before that c
nasko 2014/10/24 16:13:11 Ok. This seems to be important enough that some of
Charlie Reis 2014/10/24 16:30:45 +1.
192
189 // Recreate the opener chain. 193 // Recreate the opener chain.
190 int opener_route_id = delegate_->CreateOpenerRenderViewsForRenderManager( 194 int opener_route_id = delegate_->CreateOpenerRenderViewsForRenderManager(
191 dest_render_frame_host->GetSiteInstance()); 195 dest_render_frame_host->GetSiteInstance());
192 if (!InitRenderView(dest_render_frame_host->render_view_host(), 196 if (!InitRenderView(dest_render_frame_host->render_view_host(),
193 opener_route_id, 197 opener_route_id,
194 MSG_ROUTING_NONE, 198 MSG_ROUTING_NONE,
195 frame_tree_node_->IsMainFrame())) 199 frame_tree_node_->IsMainFrame()))
196 return NULL; 200 return NULL;
197 201
198 // Now that we've created a new renderer, be sure to hide it if it isn't 202 // Now that we've created a new renderer, be sure to hide it if it isn't
(...skipping 1408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1607 void RenderFrameHostManager::DeleteRenderFrameProxyHost( 1611 void RenderFrameHostManager::DeleteRenderFrameProxyHost(
1608 SiteInstance* instance) { 1612 SiteInstance* instance) {
1609 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); 1613 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId());
1610 if (iter != proxy_hosts_.end()) { 1614 if (iter != proxy_hosts_.end()) {
1611 delete iter->second; 1615 delete iter->second;
1612 proxy_hosts_.erase(iter); 1616 proxy_hosts_.erase(iter);
1613 } 1617 }
1614 } 1618 }
1615 1619
1616 } // namespace content 1620 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698