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

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

Issue 1199313006: Disable support for swapped out RenderFrame(Host) on desktop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_proxy_host.h" 5 #include "content/browser/frame_host/render_frame_proxy_host.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "content/browser/bad_message.h" 8 #include "content/browser/bad_message.h"
9 #include "content/browser/frame_host/cross_process_frame_connector.h" 9 #include "content/browser/frame_host/cross_process_frame_connector.h"
10 #include "content/browser/frame_host/frame_tree.h" 10 #include "content/browser/frame_host/frame_tree.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 RenderFrameProxyHost::RenderFrameProxyHost(SiteInstance* site_instance, 46 RenderFrameProxyHost::RenderFrameProxyHost(SiteInstance* site_instance,
47 RenderViewHostImpl* render_view_host, 47 RenderViewHostImpl* render_view_host,
48 FrameTreeNode* frame_tree_node) 48 FrameTreeNode* frame_tree_node)
49 : routing_id_(site_instance->GetProcess()->GetNextRoutingID()), 49 : routing_id_(site_instance->GetProcess()->GetNextRoutingID()),
50 site_instance_(site_instance), 50 site_instance_(site_instance),
51 process_(site_instance->GetProcess()), 51 process_(site_instance->GetProcess()),
52 frame_tree_node_(frame_tree_node), 52 frame_tree_node_(frame_tree_node),
53 render_frame_proxy_created_(false), 53 render_frame_proxy_created_(false),
54 render_view_host_(render_view_host) { 54 render_view_host_(render_view_host) {
55 LOG(ERROR) << "RFPH[" << this << "]::RFPH: "
56 << " routing_id:" << routing_id_
57 << " site:" << site_instance->GetId() << "," << site_instance->GetSiteURL()
58 << " rvh:" << render_view_host_;
59
55 GetProcess()->AddRoute(routing_id_, this); 60 GetProcess()->AddRoute(routing_id_, this);
56 CHECK(g_routing_id_frame_proxy_map.Get().insert( 61 CHECK(g_routing_id_frame_proxy_map.Get().insert(
57 std::make_pair( 62 std::make_pair(
58 RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_), 63 RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_),
59 this)).second); 64 this)).second);
60 CHECK(render_view_host_); 65 CHECK(render_view_host_);
61 frame_tree_node_->frame_tree()->AddRenderViewHostRef(render_view_host_); 66 frame_tree_node_->frame_tree()->AddRenderViewHostRef(render_view_host_);
62 67
63 if (!frame_tree_node_->IsMainFrame() && 68 if (!frame_tree_node_->IsMainFrame() &&
64 frame_tree_node_->parent() 69 frame_tree_node_->parent()
(...skipping 18 matching lines...) Expand all
83 // This can be removed once we don't have a swapped out state on 88 // This can be removed once we don't have a swapped out state on
84 // RenderFrame. See https://crbug.com/357747 89 // RenderFrame. See https://crbug.com/357747
85 if (!frame_tree_node_->IsMainFrame()) 90 if (!frame_tree_node_->IsMainFrame())
86 Send(new FrameMsg_DeleteProxy(routing_id_)); 91 Send(new FrameMsg_DeleteProxy(routing_id_));
87 } 92 }
88 93
89 frame_tree_node_->frame_tree()->ReleaseRenderViewHostRef(render_view_host_); 94 frame_tree_node_->frame_tree()->ReleaseRenderViewHostRef(render_view_host_);
90 GetProcess()->RemoveRoute(routing_id_); 95 GetProcess()->RemoveRoute(routing_id_);
91 g_routing_id_frame_proxy_map.Get().erase( 96 g_routing_id_frame_proxy_map.Get().erase(
92 RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_)); 97 RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_));
98 LOG(ERROR) << "RFPH[" << this << "]::~RFPH: ";
93 } 99 }
94 100
95 void RenderFrameProxyHost::SetChildRWHView(RenderWidgetHostView* view) { 101 void RenderFrameProxyHost::SetChildRWHView(RenderWidgetHostView* view) {
96 cross_process_frame_connector_->set_view( 102 cross_process_frame_connector_->set_view(
97 static_cast<RenderWidgetHostViewChildFrame*>(view)); 103 static_cast<RenderWidgetHostViewChildFrame*>(view));
98 } 104 }
99 105
100 RenderViewHostImpl* RenderFrameProxyHost::GetRenderViewHost() { 106 RenderViewHostImpl* RenderFrameProxyHost::GetRenderViewHost() {
101 return frame_tree_node_->frame_tree()->GetRenderViewHost( 107 return frame_tree_node_->frame_tree()->GetRenderViewHost(
102 site_instance_.get()); 108 site_instance_.get());
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 ->GetRenderViewHost(site_instance_.get()) 180 ->GetRenderViewHost(site_instance_.get())
175 ->GetRoutingID(), 181 ->GetRoutingID(),
176 frame_tree_node_ 182 frame_tree_node_
177 ->current_replication_state())); 183 ->current_replication_state()));
178 184
179 render_frame_proxy_created_ = true; 185 render_frame_proxy_created_ = true;
180 return true; 186 return true;
181 } 187 }
182 188
183 void RenderFrameProxyHost::DisownOpener() { 189 void RenderFrameProxyHost::DisownOpener() {
190 LOG(ERROR) << "RFPH[" << this << "]::DisownOpener";
184 Send(new FrameMsg_DisownOpener(GetRoutingID())); 191 Send(new FrameMsg_DisownOpener(GetRoutingID()));
185 } 192 }
186 193
187 void RenderFrameProxyHost::OnDetach() { 194 void RenderFrameProxyHost::OnDetach() {
188 // This message should only be received for subframes. Note that we can't 195 // This message should only be received for subframes. Note that we can't
189 // restrict it to just the current SiteInstances of the ancestors of this 196 // restrict it to just the current SiteInstances of the ancestors of this
190 // frame, because another frame in the tree may be able to detach this frame 197 // frame, because another frame in the tree may be able to detach this frame
191 // by navigating its parent. 198 // by navigating its parent.
192 if (frame_tree_node_->IsMainFrame()) { 199 if (frame_tree_node_->IsMainFrame()) {
193 bad_message::ReceivedBadMessage(GetProcess(), bad_message::RFPH_DETACH); 200 bad_message::ReceivedBadMessage(GetProcess(), bad_message::RFPH_DETACH);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 base::Bind(&MessagePortMessageFilter::RouteMessageEventWithMessagePorts, 276 base::Bind(&MessagePortMessageFilter::RouteMessageEventWithMessagePorts,
270 message_port_message_filter, target_rfh->GetRoutingID(), 277 message_port_message_filter, target_rfh->GetRoutingID(),
271 new_params)); 278 new_params));
272 } else { 279 } else {
273 target_rfh->Send( 280 target_rfh->Send(
274 new FrameMsg_PostMessageEvent(target_rfh->GetRoutingID(), new_params)); 281 new FrameMsg_PostMessageEvent(target_rfh->GetRoutingID(), new_params));
275 } 282 }
276 } 283 }
277 284
278 } // namespace content 285 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698