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

Side by Side Diff: content/browser/web_contents/render_view_host_manager.cc

Issue 16032007: Create RenderFrame/RenderFrameHost for the main frame of a page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing routing ID expectations. Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/web_contents/render_view_host_manager.h" 5 #include "content/browser/web_contents/render_view_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/logging.h" 10 #include "base/logging.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 // Shut down any swapped out RenderViewHosts. 57 // Shut down any swapped out RenderViewHosts.
58 for (RenderViewHostMap::iterator iter = swapped_out_hosts_.begin(); 58 for (RenderViewHostMap::iterator iter = swapped_out_hosts_.begin();
59 iter != swapped_out_hosts_.end(); 59 iter != swapped_out_hosts_.end();
60 ++iter) { 60 ++iter) {
61 iter->second->Shutdown(); 61 iter->second->Shutdown();
62 } 62 }
63 } 63 }
64 64
65 void RenderViewHostManager::Init(BrowserContext* browser_context, 65 void RenderViewHostManager::Init(BrowserContext* browser_context,
66 SiteInstance* site_instance, 66 SiteInstance* site_instance,
67 int routing_id) { 67 int routing_id,
68 int main_frame_routing_id) {
68 // Create a RenderViewHost, once we have an instance. It is important to 69 // Create a RenderViewHost, once we have an instance. It is important to
69 // immediately give this SiteInstance to a RenderViewHost so that it is 70 // immediately give this SiteInstance to a RenderViewHost so that it is
70 // ref counted. 71 // ref counted.
71 if (!site_instance) 72 if (!site_instance)
72 site_instance = SiteInstance::Create(browser_context); 73 site_instance = SiteInstance::Create(browser_context);
73 render_view_host_ = static_cast<RenderViewHostImpl*>( 74 render_view_host_ = static_cast<RenderViewHostImpl*>(
74 RenderViewHostFactory::Create( 75 RenderViewHostFactory::Create(
75 site_instance, render_view_delegate_, render_widget_delegate_, 76 site_instance, render_view_delegate_, render_widget_delegate_,
76 routing_id, false, delegate_-> 77 routing_id, main_frame_routing_id, false, delegate_->
77 GetControllerForRenderManager().GetSessionStorageNamespace( 78 GetControllerForRenderManager().GetSessionStorageNamespace(
78 site_instance))); 79 site_instance)));
79 80
80 // Keep track of renderer processes as they start to shut down. 81 // Keep track of renderer processes as they start to shut down.
81 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING, 82 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING,
82 NotificationService::AllSources()); 83 NotificationService::AllSources());
83 } 84 }
84 85
85 RenderViewHostImpl* RenderViewHostManager::current_host() const { 86 RenderViewHostImpl* RenderViewHostManager::current_host() const {
86 return render_view_host_; 87 return render_view_host_;
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 GetSwappedOutRenderViewHost(instance)); 618 GetSwappedOutRenderViewHost(instance));
618 if (new_render_view_host) { 619 if (new_render_view_host) {
619 // Prevent the process from exiting while we're trying to use it. 620 // Prevent the process from exiting while we're trying to use it.
620 if (!swapped_out) 621 if (!swapped_out)
621 new_render_view_host->GetProcess()->AddPendingView(); 622 new_render_view_host->GetProcess()->AddPendingView();
622 } else { 623 } else {
623 // Create a new RenderViewHost if we don't find an existing one. 624 // Create a new RenderViewHost if we don't find an existing one.
624 new_render_view_host = static_cast<RenderViewHostImpl*>( 625 new_render_view_host = static_cast<RenderViewHostImpl*>(
625 RenderViewHostFactory::Create(instance, 626 RenderViewHostFactory::Create(instance,
626 render_view_delegate_, render_widget_delegate_, MSG_ROUTING_NONE, 627 render_view_delegate_, render_widget_delegate_, MSG_ROUTING_NONE,
627 swapped_out, delegate_-> 628 MSG_ROUTING_NONE, swapped_out, delegate_->
628 GetControllerForRenderManager().GetSessionStorageNamespace( 629 GetControllerForRenderManager().GetSessionStorageNamespace(
629 instance))); 630 instance)));
630 631
631 // If the new RVH is swapped out already, store it. Otherwise prevent the 632 // If the new RVH is swapped out already, store it. Otherwise prevent the
632 // process from exiting while we're trying to navigate in it. 633 // process from exiting while we're trying to navigate in it.
633 if (swapped_out) { 634 if (swapped_out) {
634 swapped_out_hosts_[instance->GetId()] = new_render_view_host; 635 swapped_out_hosts_[instance->GetId()] = new_render_view_host;
635 } else { 636 } else {
636 new_render_view_host->GetProcess()->AddPendingView(); 637 new_render_view_host->GetProcess()->AddPendingView();
637 } 638 }
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 RenderViewHostImpl* RenderViewHostManager::GetSwappedOutRenderViewHost( 973 RenderViewHostImpl* RenderViewHostManager::GetSwappedOutRenderViewHost(
973 SiteInstance* instance) { 974 SiteInstance* instance) {
974 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId()); 975 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId());
975 if (iter != swapped_out_hosts_.end()) 976 if (iter != swapped_out_hosts_.end())
976 return iter->second; 977 return iter->second;
977 978
978 return NULL; 979 return NULL;
979 } 980 }
980 981
981 } // namespace content 982 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698