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 f9e2bf976fcbe85f71d53b78f7fbd8fe5bcf37f9..70bbf11c42fd9de9d4b285cae0552d9639a47f7a 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager.cc |
| @@ -109,6 +109,14 @@ void RenderFrameHostManager::Init(BrowserContext* browser_context, |
| SetRenderFrameHost(CreateRenderFrameHost(site_instance, view_routing_id, |
| frame_routing_id, flags)); |
| + // Notify the delegate of the creation of the current RenderFrameHost. |
| + // Note: do it only for subframes, as the main frame case is taken care of |
|
Charlie Reis
2015/03/02 18:38:25
"Note: do it" -> "Do this"
nasko
2015/03/02 19:30:53
Done.
|
| + // by WebContentsImpl::Init. |
| + if (!frame_tree_node_->IsMainFrame()) { |
| + delegate_->NotifySwappedFromRenderManager( |
| + nullptr, render_frame_host_.get(), false); |
| + } |
| + |
| // Keep track of renderer processes as they start to shut down or are |
| // crashed/killed. |
| registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED, |
| @@ -224,14 +232,18 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate( |
| // Now that we've created a new renderer, be sure to hide it if it isn't |
| // our primary one. Otherwise, we might crash if we try to call Show() |
| // on it later. |
| - if (dest_render_frame_host != render_frame_host_ && |
| - dest_render_frame_host->GetView()) { |
| - dest_render_frame_host->GetView()->Hide(); |
| + if (dest_render_frame_host != render_frame_host_) { |
| + if (dest_render_frame_host->GetView()) |
| + dest_render_frame_host->GetView()->Hide(); |
| } else { |
| - // Notify here as we won't be calling CommitPending (which does the |
| - // notify). |
| - delegate_->NotifySwappedFromRenderManager( |
| - NULL, render_frame_host_.get(), frame_tree_node_->IsMainFrame()); |
| + // TODO(nasko): This is a very ugly hack. The Chrome extensions process |
| + // manager still uses NotificationService and expects to see a |
| + // RenderViewHost changed notification after WebContents and |
| + // RenderFrameHostManager are completely initialized. This should be |
| + // removed once the process manager moves away from NotificationService. |
| + // See https://crbug.com/462682 |
|
Charlie Reis
2015/03/02 18:38:25
nit: End with period.
nasko
2015/03/02 19:30:54
Done.
|
| + delegate_->NotifyMainFrameSwappedFromRenderManager( |
| + nullptr, render_frame_host_.get()); |
| } |
| } |