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

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

Issue 103633002: Add RenderFrameHostDelegate and plumb it through all the necessary classes. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years 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 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 transfer_url_chain(transfer_url_chain), 50 transfer_url_chain(transfer_url_chain),
51 referrer(referrer), 51 referrer(referrer),
52 page_transition(page_transition), 52 page_transition(page_transition),
53 frame_id(frame_id), 53 frame_id(frame_id),
54 should_replace_current_entry(should_replace_current_entry) { 54 should_replace_current_entry(should_replace_current_entry) {
55 } 55 }
56 56
57 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {} 57 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {}
58 58
59 RenderFrameHostManager::RenderFrameHostManager( 59 RenderFrameHostManager::RenderFrameHostManager(
60 RenderFrameHostDelegate* render_frame_delegate,
60 RenderViewHostDelegate* render_view_delegate, 61 RenderViewHostDelegate* render_view_delegate,
61 RenderWidgetHostDelegate* render_widget_delegate, 62 RenderWidgetHostDelegate* render_widget_delegate,
62 Delegate* delegate) 63 Delegate* delegate)
63 : delegate_(delegate), 64 : delegate_(delegate),
64 cross_navigation_pending_(false), 65 cross_navigation_pending_(false),
66 render_frame_delegate_(render_frame_delegate),
65 render_view_delegate_(render_view_delegate), 67 render_view_delegate_(render_view_delegate),
66 render_widget_delegate_(render_widget_delegate), 68 render_widget_delegate_(render_widget_delegate),
67 render_view_host_(NULL), 69 render_view_host_(NULL),
68 pending_render_view_host_(NULL), 70 pending_render_view_host_(NULL),
69 interstitial_page_(NULL) { 71 interstitial_page_(NULL) {
70 } 72 }
71 73
72 RenderFrameHostManager::~RenderFrameHostManager() { 74 RenderFrameHostManager::~RenderFrameHostManager() {
73 if (pending_render_view_host_) 75 if (pending_render_view_host_)
74 CancelPending(); 76 CancelPending();
(...skipping 16 matching lines...) Expand all
91 SiteInstance* site_instance, 93 SiteInstance* site_instance,
92 int routing_id, 94 int routing_id,
93 int main_frame_routing_id) { 95 int main_frame_routing_id) {
94 // Create a RenderViewHost, once we have an instance. It is important to 96 // Create a RenderViewHost, once we have an instance. It is important to
95 // immediately give this SiteInstance to a RenderViewHost so that it is 97 // immediately give this SiteInstance to a RenderViewHost so that it is
96 // ref counted. 98 // ref counted.
97 if (!site_instance) 99 if (!site_instance)
98 site_instance = SiteInstance::Create(browser_context); 100 site_instance = SiteInstance::Create(browser_context);
99 render_view_host_ = static_cast<RenderViewHostImpl*>( 101 render_view_host_ = static_cast<RenderViewHostImpl*>(
100 RenderViewHostFactory::Create( 102 RenderViewHostFactory::Create(
101 site_instance, render_view_delegate_, render_widget_delegate_, 103 site_instance, render_view_delegate_, render_frame_delegate_,
102 routing_id, main_frame_routing_id, false, 104 render_widget_delegate_, routing_id, main_frame_routing_id, false,
103 delegate_->IsHidden())); 105 delegate_->IsHidden()));
104 render_view_host_->AttachToFrameTree(); 106 render_view_host_->AttachToFrameTree();
105 107
106 // Keep track of renderer processes as they start to shut down or are 108 // Keep track of renderer processes as they start to shut down or are
107 // crashed/killed. 109 // crashed/killed.
108 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED, 110 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED,
109 NotificationService::AllSources()); 111 NotificationService::AllSources());
110 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING, 112 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING,
111 NotificationService::AllSources()); 113 NotificationService::AllSources());
112 } 114 }
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 GetSwappedOutRenderViewHost(instance)); 740 GetSwappedOutRenderViewHost(instance));
739 if (new_render_view_host) { 741 if (new_render_view_host) {
740 // Prevent the process from exiting while we're trying to use it. 742 // Prevent the process from exiting while we're trying to use it.
741 if (!swapped_out) 743 if (!swapped_out)
742 new_render_view_host->GetProcess()->AddPendingView(); 744 new_render_view_host->GetProcess()->AddPendingView();
743 } else { 745 } else {
744 // Create a new RenderViewHost if we don't find an existing one. 746 // Create a new RenderViewHost if we don't find an existing one.
745 new_render_view_host = static_cast<RenderViewHostImpl*>( 747 new_render_view_host = static_cast<RenderViewHostImpl*>(
746 RenderViewHostFactory::Create(instance, 748 RenderViewHostFactory::Create(instance,
747 render_view_delegate_, 749 render_view_delegate_,
750 render_frame_delegate_,
748 render_widget_delegate_, 751 render_widget_delegate_,
749 MSG_ROUTING_NONE, 752 MSG_ROUTING_NONE,
750 MSG_ROUTING_NONE, 753 MSG_ROUTING_NONE,
751 swapped_out, 754 swapped_out,
752 hidden)); 755 hidden));
753 756
754 // If the new RVH is swapped out already, store it. Otherwise prevent the 757 // If the new RVH is swapped out already, store it. Otherwise prevent the
755 // process from exiting while we're trying to navigate in it. 758 // process from exiting while we're trying to navigate in it.
756 if (swapped_out) { 759 if (swapped_out) {
757 swapped_out_hosts_[instance->GetId()] = new_render_view_host; 760 swapped_out_hosts_[instance->GetId()] = new_render_view_host;
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost( 1146 RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost(
1144 SiteInstance* instance) { 1147 SiteInstance* instance) {
1145 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId()); 1148 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId());
1146 if (iter != swapped_out_hosts_.end()) 1149 if (iter != swapped_out_hosts_.end())
1147 return iter->second; 1150 return iter->second;
1148 1151
1149 return NULL; 1152 return NULL;
1150 } 1153 }
1151 1154
1152 } // namespace content 1155 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698