OLD | NEW |
---|---|
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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
112 | 112 |
113 RenderViewHostImpl* RenderFrameHostManager::pending_render_view_host() const { | 113 RenderViewHostImpl* RenderFrameHostManager::pending_render_view_host() const { |
114 if (!pending_render_frame_host_) | 114 if (!pending_render_frame_host_) |
115 return NULL; | 115 return NULL; |
116 return pending_render_frame_host_->render_view_host(); | 116 return pending_render_frame_host_->render_view_host(); |
117 } | 117 } |
118 | 118 |
119 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { | 119 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { |
120 if (interstitial_page_) | 120 if (interstitial_page_) |
121 return interstitial_page_->GetView(); | 121 return interstitial_page_->GetView(); |
122 if (!render_frame_host_) | 122 if (!render_frame_host_ || |
123 !render_frame_host_->GetView()) | |
Charlie Reis
2015/01/07 23:58:41
This line looks unnecessary. If render_frame_host
kenrb
2015/01/14 18:13:56
Done.
| |
123 return NULL; | 124 return NULL; |
124 return render_frame_host_->render_view_host()->GetView(); | 125 return render_frame_host_->GetView(); |
125 } | 126 } |
126 | 127 |
127 RenderFrameProxyHost* RenderFrameHostManager::GetProxyToParent() { | 128 RenderFrameProxyHost* RenderFrameHostManager::GetProxyToParent() { |
128 if (frame_tree_node_->IsMainFrame()) | 129 if (frame_tree_node_->IsMainFrame()) |
129 return NULL; | 130 return NULL; |
130 | 131 |
131 RenderFrameProxyHostMap::iterator iter = | 132 RenderFrameProxyHostMap::iterator iter = |
132 proxy_hosts_.find(frame_tree_node_->parent() | 133 proxy_hosts_.find(frame_tree_node_->parent() |
133 ->render_manager() | 134 ->render_manager() |
134 ->current_frame_host() | 135 ->current_frame_host() |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
205 if (!InitRenderView(dest_render_frame_host->render_view_host(), | 206 if (!InitRenderView(dest_render_frame_host->render_view_host(), |
206 opener_route_id, | 207 opener_route_id, |
207 MSG_ROUTING_NONE, | 208 MSG_ROUTING_NONE, |
208 frame_tree_node_->IsMainFrame())) | 209 frame_tree_node_->IsMainFrame())) |
209 return NULL; | 210 return NULL; |
210 | 211 |
211 // Now that we've created a new renderer, be sure to hide it if it isn't | 212 // Now that we've created a new renderer, be sure to hide it if it isn't |
212 // our primary one. Otherwise, we might crash if we try to call Show() | 213 // our primary one. Otherwise, we might crash if we try to call Show() |
213 // on it later. | 214 // on it later. |
214 if (dest_render_frame_host != render_frame_host_ && | 215 if (dest_render_frame_host != render_frame_host_ && |
215 dest_render_frame_host->render_view_host()->GetView()) { | 216 dest_render_frame_host->GetView()) { |
216 dest_render_frame_host->render_view_host()->GetView()->Hide(); | 217 dest_render_frame_host->GetView()->Hide(); |
217 } else { | 218 } else { |
218 // Notify here as we won't be calling CommitPending (which does the | 219 // Notify here as we won't be calling CommitPending (which does the |
219 // notify). | 220 // notify). |
220 delegate_->NotifySwappedFromRenderManager( | 221 delegate_->NotifySwappedFromRenderManager( |
221 NULL, render_frame_host_.get(), frame_tree_node_->IsMainFrame()); | 222 NULL, render_frame_host_.get(), frame_tree_node_->IsMainFrame()); |
222 } | 223 } |
223 } | 224 } |
224 | 225 |
225 // If entry includes the request ID of a request that is being transferred, | 226 // If entry includes the request ID of a request that is being transferred, |
226 // the destination render frame will take ownership, so release ownership of | 227 // the destination render frame will take ownership, so release ownership of |
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1044 SiteInstance* old_instance, | 1045 SiteInstance* old_instance, |
1045 SiteInstance* new_instance, | 1046 SiteInstance* new_instance, |
1046 bool is_main_frame) { | 1047 bool is_main_frame) { |
1047 int create_render_frame_flags = 0; | 1048 int create_render_frame_flags = 0; |
1048 if (is_main_frame) | 1049 if (is_main_frame) |
1049 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; | 1050 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; |
1050 | 1051 |
1051 if (delegate_->IsHidden()) | 1052 if (delegate_->IsHidden()) |
1052 create_render_frame_flags |= CREATE_RF_HIDDEN; | 1053 create_render_frame_flags |= CREATE_RF_HIDDEN; |
1053 | 1054 |
1054 int opener_route_id = | 1055 int opener_route_id = CreateOpenerRenderViewsIfNeeded( |
1055 CreateOpenerRenderViewsIfNeeded(old_instance, new_instance); | 1056 old_instance, new_instance, &create_render_frame_flags); |
1056 | 1057 |
1057 if (pending_render_frame_host_) | 1058 if (pending_render_frame_host_) |
1058 CancelPending(); | 1059 CancelPending(); |
1059 | 1060 |
1060 // Create a non-swapped-out RFH with the given opener. | 1061 // Create a non-swapped-out RFH with the given opener. |
1061 pending_render_frame_host_ = | 1062 pending_render_frame_host_ = |
1062 CreateRenderFrame(new_instance, pending_web_ui(), opener_route_id, | 1063 CreateRenderFrame(new_instance, pending_web_ui(), opener_route_id, |
1063 create_render_frame_flags, nullptr); | 1064 create_render_frame_flags, nullptr); |
1064 } | 1065 } |
1065 | 1066 |
1066 int RenderFrameHostManager::CreateOpenerRenderViewsIfNeeded( | 1067 int RenderFrameHostManager::CreateOpenerRenderViewsIfNeeded( |
1067 SiteInstance* old_instance, | 1068 SiteInstance* old_instance, |
1068 SiteInstance* new_instance) { | 1069 SiteInstance* new_instance, |
1070 int* create_render_frame_flags) { | |
1069 int opener_route_id = MSG_ROUTING_NONE; | 1071 int opener_route_id = MSG_ROUTING_NONE; |
1070 if (new_instance->IsRelatedSiteInstance(old_instance)) { | 1072 if (new_instance->IsRelatedSiteInstance(old_instance)) { |
1071 opener_route_id = | 1073 opener_route_id = |
1072 delegate_->CreateOpenerRenderViewsForRenderManager(new_instance); | 1074 delegate_->CreateOpenerRenderViewsForRenderManager(new_instance); |
1073 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1075 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1074 switches::kSitePerProcess)) { | 1076 switches::kSitePerProcess)) { |
1075 // Ensure that the frame tree has RenderFrameProxyHosts for the new | 1077 // Ensure that the frame tree has RenderFrameProxyHosts for the new |
1076 // SiteInstance in all nodes except the current one. | 1078 // SiteInstance in all nodes except the current one. |
1077 frame_tree_node_->frame_tree()->CreateProxiesForSiteInstance( | 1079 frame_tree_node_->frame_tree()->CreateProxiesForSiteInstance( |
1078 frame_tree_node_, new_instance); | 1080 frame_tree_node_, new_instance); |
1081 // RenderFrames in different processes from their parent RenderFrames | |
1082 // in the frame tree require RenderWidgets for rendering and processing | |
1083 // input events. | |
1084 if (frame_tree_node_->parent() && | |
1085 frame_tree_node_->parent() | |
Charlie Reis
2015/01/07 23:58:41
Unfortunate that we can't use RFHI::IsCrossProcess
kenrb
2015/01/14 18:13:56
Done.
| |
1086 ->render_manager() | |
1087 ->current_frame_host() | |
1088 ->GetSiteInstance() != new_instance) | |
1089 *create_render_frame_flags |= CREATE_RF_NEEDS_RENDER_WIDGET_HOST; | |
1079 } | 1090 } |
1080 } | 1091 } |
1081 return opener_route_id; | 1092 return opener_route_id; |
1082 } | 1093 } |
1083 | 1094 |
1084 scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrameHost( | 1095 scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrameHost( |
1085 SiteInstance* site_instance, | 1096 SiteInstance* site_instance, |
1086 int view_routing_id, | 1097 int view_routing_id, |
1087 int frame_routing_id, | 1098 int frame_routing_id, |
1088 int flags) { | 1099 int flags) { |
1089 if (frame_routing_id == MSG_ROUTING_NONE) | 1100 if (frame_routing_id == MSG_ROUTING_NONE) |
1090 frame_routing_id = site_instance->GetProcess()->GetNextRoutingID(); | 1101 frame_routing_id = site_instance->GetProcess()->GetNextRoutingID(); |
1091 | 1102 |
1092 bool swapped_out = !!(flags & CREATE_RF_SWAPPED_OUT); | 1103 bool swapped_out = !!(flags & CREATE_RF_SWAPPED_OUT); |
1093 bool hidden = !!(flags & CREATE_RF_HIDDEN); | 1104 bool hidden = !!(flags & CREATE_RF_HIDDEN); |
1094 | 1105 |
1095 // Create a RVH for main frames, or find the existing one for subframes. | 1106 // Create a RVH for main frames, or find the existing one for subframes. |
1096 FrameTree* frame_tree = frame_tree_node_->frame_tree(); | 1107 FrameTree* frame_tree = frame_tree_node_->frame_tree(); |
1097 RenderViewHostImpl* render_view_host = NULL; | 1108 RenderViewHostImpl* render_view_host = NULL; |
1098 if (frame_tree_node_->IsMainFrame()) { | 1109 if (frame_tree_node_->IsMainFrame()) { |
1099 render_view_host = frame_tree->CreateRenderViewHost( | 1110 render_view_host = frame_tree->CreateRenderViewHost( |
1100 site_instance, view_routing_id, frame_routing_id, swapped_out, hidden); | 1111 site_instance, view_routing_id, frame_routing_id, swapped_out, hidden); |
1101 } else { | 1112 } else { |
1102 render_view_host = frame_tree->GetRenderViewHost(site_instance); | 1113 render_view_host = frame_tree->GetRenderViewHost(site_instance); |
1103 | 1114 |
1104 CHECK(render_view_host); | 1115 CHECK(render_view_host); |
1105 } | 1116 } |
1106 | 1117 |
1107 // TODO(creis): Pass hidden to RFH. | 1118 // TODO(creis): Pass hidden to RFH. |
1108 scoped_ptr<RenderFrameHostImpl> render_frame_host = | 1119 scoped_ptr<RenderFrameHostImpl> render_frame_host = make_scoped_ptr( |
1109 make_scoped_ptr(RenderFrameHostFactory::Create( | 1120 RenderFrameHostFactory::Create( |
1110 render_view_host, render_frame_delegate_, frame_tree, | 1121 render_view_host, render_frame_delegate_, render_widget_delegate_, |
1111 frame_tree_node_, frame_routing_id, flags).release()); | 1122 frame_tree, frame_tree_node_, frame_routing_id, flags).release()); |
1112 return render_frame_host.Pass(); | 1123 return render_frame_host.Pass(); |
1113 } | 1124 } |
1114 | 1125 |
1115 scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( | 1126 scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( |
1116 SiteInstance* instance, | 1127 SiteInstance* instance, |
1117 WebUIImpl* web_ui, | 1128 WebUIImpl* web_ui, |
1118 int opener_route_id, | 1129 int opener_route_id, |
1119 int flags, | 1130 int flags, |
1120 int* view_routing_id_ptr) { | 1131 int* view_routing_id_ptr) { |
1121 bool swapped_out = !!(flags & CREATE_RF_SWAPPED_OUT); | 1132 bool swapped_out = !!(flags & CREATE_RF_SWAPPED_OUT); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1186 proxy_routing_id = proxy->GetRoutingID(); | 1197 proxy_routing_id = proxy->GetRoutingID(); |
1187 proxy->TakeFrameHostOwnership(new_render_frame_host.Pass()); | 1198 proxy->TakeFrameHostOwnership(new_render_frame_host.Pass()); |
1188 } | 1199 } |
1189 | 1200 |
1190 success = | 1201 success = |
1191 InitRenderView(render_view_host, opener_route_id, proxy_routing_id, | 1202 InitRenderView(render_view_host, opener_route_id, proxy_routing_id, |
1192 !!(flags & CREATE_RF_FOR_MAIN_FRAME_NAVIGATION)); | 1203 !!(flags & CREATE_RF_FOR_MAIN_FRAME_NAVIGATION)); |
1193 if (success) { | 1204 if (success) { |
1194 if (frame_tree_node_->IsMainFrame()) { | 1205 if (frame_tree_node_->IsMainFrame()) { |
1195 // Don't show the main frame's view until we get a DidNavigate from it. | 1206 // Don't show the main frame's view until we get a DidNavigate from it. |
1196 render_view_host->GetView()->Hide(); | 1207 // Only top-level RenderViewHosts have RenderWidgetHostViews; |
Charlie Reis
2015/01/07 23:58:41
nit: Only the RenderViewHost for the top-level Ren
kenrb
2015/01/14 18:13:56
Done.
| |
1208 // RenderWidgetHosts for out-of-process iframes will be created | |
1209 // later and hidden. | |
1210 if (render_view_host->GetView()) | |
1211 render_view_host->GetView()->Hide(); | |
1197 } else if (!swapped_out) { | 1212 } else if (!swapped_out) { |
1198 // Init the RFH, so a RenderFrame is created in the renderer. | 1213 // Init the RFH, so a RenderFrame is created in the renderer. |
1199 DCHECK(new_render_frame_host.get()); | 1214 DCHECK(new_render_frame_host.get()); |
1200 success = InitRenderFrame(new_render_frame_host.get()); | 1215 success = InitRenderFrame(new_render_frame_host.get()); |
1201 } | 1216 } |
1202 } | 1217 } |
1203 | 1218 |
1204 if (success) { | 1219 if (success) { |
1205 if (view_routing_id_ptr) | 1220 if (view_routing_id_ptr) |
1206 *view_routing_id_ptr = render_view_host->GetRoutingID(); | 1221 *view_routing_id_ptr = render_view_host->GetRoutingID(); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1337 // committing above and we're done. | 1352 // committing above and we're done. |
1338 if (!pending_render_frame_host_) { | 1353 if (!pending_render_frame_host_) { |
1339 if (will_focus_location_bar) | 1354 if (will_focus_location_bar) |
1340 delegate_->SetFocusToLocationBar(false); | 1355 delegate_->SetFocusToLocationBar(false); |
1341 return; | 1356 return; |
1342 } | 1357 } |
1343 | 1358 |
1344 // Remember if the page was focused so we can focus the new renderer in | 1359 // Remember if the page was focused so we can focus the new renderer in |
1345 // that case. | 1360 // that case. |
1346 bool focus_render_view = !will_focus_location_bar && | 1361 bool focus_render_view = !will_focus_location_bar && |
1347 render_frame_host_->render_view_host()->GetView() && | 1362 render_frame_host_->GetView() && |
1348 render_frame_host_->render_view_host()->GetView()->HasFocus(); | 1363 render_frame_host_->GetView()->HasFocus(); |
1349 | 1364 |
1350 bool is_main_frame = frame_tree_node_->IsMainFrame(); | 1365 bool is_main_frame = frame_tree_node_->IsMainFrame(); |
1351 | 1366 |
1352 // Swap in the pending frame and make it active. Also ensure the FrameTree | 1367 // Swap in the pending frame and make it active. Also ensure the FrameTree |
1353 // stays in sync. | 1368 // stays in sync. |
1354 scoped_ptr<RenderFrameHostImpl> old_render_frame_host = | 1369 scoped_ptr<RenderFrameHostImpl> old_render_frame_host = |
1355 SetRenderFrameHost(pending_render_frame_host_.Pass()); | 1370 SetRenderFrameHost(pending_render_frame_host_.Pass()); |
1356 if (is_main_frame) | 1371 if (is_main_frame) |
1357 render_frame_host_->render_view_host()->AttachToFrameTree(); | 1372 render_frame_host_->render_view_host()->AttachToFrameTree(); |
1358 | 1373 |
1359 // The process will no longer try to exit, so we can decrement the count. | 1374 // The process will no longer try to exit, so we can decrement the count. |
1360 render_frame_host_->GetProcess()->RemovePendingView(); | 1375 render_frame_host_->GetProcess()->RemovePendingView(); |
1361 | 1376 |
1362 // Show the new view (or a sad tab) if necessary. | 1377 // Show the new view (or a sad tab) if necessary. |
1363 bool new_rfh_has_view = !!render_frame_host_->render_view_host()->GetView(); | 1378 bool new_rfh_has_view = !!render_frame_host_->GetView(); |
1364 if (!delegate_->IsHidden() && new_rfh_has_view) { | 1379 if (!delegate_->IsHidden() && new_rfh_has_view) { |
1365 // In most cases, we need to show the new view. | 1380 // In most cases, we need to show the new view. |
1366 render_frame_host_->render_view_host()->GetView()->Show(); | 1381 render_frame_host_->GetView()->Show(); |
1367 } | 1382 } |
1368 if (!new_rfh_has_view) { | 1383 if (!new_rfh_has_view) { |
1369 // If the view is gone, then this RenderViewHost died while it was hidden. | 1384 // If the view is gone, then this RenderViewHost died while it was hidden. |
1370 // We ignored the RenderProcessGone call at the time, so we should send it | 1385 // We ignored the RenderProcessGone call at the time, so we should send it |
1371 // now to make sure the sad tab shows up, etc. | 1386 // now to make sure the sad tab shows up, etc. |
1372 DCHECK(!render_frame_host_->IsRenderFrameLive()); | 1387 DCHECK(!render_frame_host_->IsRenderFrameLive()); |
1373 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive()); | 1388 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive()); |
1374 delegate_->RenderProcessGoneFromRenderManager( | 1389 delegate_->RenderProcessGoneFromRenderManager( |
1375 render_frame_host_->render_view_host()); | 1390 render_frame_host_->render_view_host()); |
1376 } | 1391 } |
1377 | 1392 |
1378 // For top-level frames, also hide the old RenderViewHost's view. | 1393 // For top-level frames, also hide the old RenderViewHost's view. |
1379 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on | 1394 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on |
1380 // subframe navigations or we will interfere with the top-level frame. | 1395 // subframe navigations or we will interfere with the top-level frame. |
1381 if (is_main_frame && old_render_frame_host->render_view_host()->GetView()) | 1396 if (is_main_frame && old_render_frame_host->render_view_host()->GetView()) |
1382 old_render_frame_host->render_view_host()->GetView()->Hide(); | 1397 old_render_frame_host->render_view_host()->GetView()->Hide(); |
1383 | 1398 |
1384 // Make sure the size is up to date. (Fix for bug 1079768.) | 1399 // Make sure the size is up to date. (Fix for bug 1079768.) |
1385 delegate_->UpdateRenderViewSizeForRenderManager(); | 1400 delegate_->UpdateRenderViewSizeForRenderManager(); |
1386 | 1401 |
1387 if (will_focus_location_bar) { | 1402 if (will_focus_location_bar) { |
1388 delegate_->SetFocusToLocationBar(false); | 1403 delegate_->SetFocusToLocationBar(false); |
1389 } else if (focus_render_view && | 1404 } else if (focus_render_view && render_frame_host_->GetView()) { |
1390 render_frame_host_->render_view_host()->GetView()) { | 1405 render_frame_host_->GetView()->Focus(); |
1391 render_frame_host_->render_view_host()->GetView()->Focus(); | |
1392 } | 1406 } |
1393 | 1407 |
1394 // Notify that we've swapped RenderFrameHosts. We do this before shutting down | 1408 // Notify that we've swapped RenderFrameHosts. We do this before shutting down |
1395 // the RFH so that we can clean up RendererResources related to the RFH first. | 1409 // the RFH so that we can clean up RendererResources related to the RFH first. |
1396 delegate_->NotifySwappedFromRenderManager( | 1410 delegate_->NotifySwappedFromRenderManager( |
1397 old_render_frame_host.get(), render_frame_host_.get(), is_main_frame); | 1411 old_render_frame_host.get(), render_frame_host_.get(), is_main_frame); |
1398 | 1412 |
1399 // Swap out the old frame now that the new one is visible. | 1413 // Swap out the old frame now that the new one is visible. |
1400 // This will swap it out and then put it on the proxy list (if there are other | 1414 // This will swap it out and then put it on the proxy list (if there are other |
1401 // active views in its SiteInstance) or schedule it for deletion when the swap | 1415 // active views in its SiteInstance) or schedule it for deletion when the swap |
1402 // out ack arrives (or immediately if the process isn't live). | 1416 // out ack arrives (or immediately if the process isn't live). |
1403 // In the --site-per-process case, old subframe RHFs are not kept alive inside | 1417 // In the --site-per-process case, old subframe RHFs are not kept alive inside |
1404 // the proxy. | 1418 // the proxy. |
1405 SwapOutOldFrame(old_render_frame_host.Pass()); | 1419 SwapOutOldFrame(old_render_frame_host.Pass()); |
1406 | 1420 |
1407 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1421 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
1408 switches::kSitePerProcess) && | 1422 switches::kSitePerProcess) && |
1409 !is_main_frame) { | 1423 !is_main_frame) { |
1410 // If this is a subframe, it should have a CrossProcessFrameConnector | 1424 // If this is a subframe, it should have a CrossProcessFrameConnector |
1411 // created already. Use it to link the new RFH's view to the proxy that | 1425 // created already. Use it to link the new RFH's view to the proxy that |
1412 // belongs to the parent frame's SiteInstance. | 1426 // belongs to the parent frame's SiteInstance. |
1413 // Note: We do this after swapping out the old RFH because that may create | 1427 // Note: We do this after swapping out the old RFH because that may create |
1414 // the proxy we're looking for. | 1428 // the proxy we're looking for. |
1415 RenderFrameProxyHost* proxy_to_parent = GetProxyToParent(); | 1429 RenderFrameProxyHost* proxy_to_parent = GetProxyToParent(); |
1416 if (proxy_to_parent) { | 1430 if (proxy_to_parent) { |
1417 proxy_to_parent->SetChildRWHView( | 1431 proxy_to_parent->SetChildRWHView(render_frame_host_->GetView()); |
1418 render_frame_host_->render_view_host()->GetView()); | |
1419 } | 1432 } |
1420 | 1433 |
1421 // Since the new RenderFrameHost is now committed, there must be no proxies | 1434 // Since the new RenderFrameHost is now committed, there must be no proxies |
1422 // for its SiteInstance. Delete any existing ones. | 1435 // for its SiteInstance. Delete any existing ones. |
1423 RenderFrameProxyHostMap::iterator iter = | 1436 RenderFrameProxyHostMap::iterator iter = |
1424 proxy_hosts_.find(render_frame_host_->GetSiteInstance()->GetId()); | 1437 proxy_hosts_.find(render_frame_host_->GetSiteInstance()->GetId()); |
1425 if (iter != proxy_hosts_.end()) { | 1438 if (iter != proxy_hosts_.end()) { |
1426 delete iter->second; | 1439 delete iter->second; |
1427 proxy_hosts_.erase(iter); | 1440 proxy_hosts_.erase(iter); |
1428 } | 1441 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1707 void RenderFrameHostManager::DeleteRenderFrameProxyHost( | 1720 void RenderFrameHostManager::DeleteRenderFrameProxyHost( |
1708 SiteInstance* instance) { | 1721 SiteInstance* instance) { |
1709 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); | 1722 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); |
1710 if (iter != proxy_hosts_.end()) { | 1723 if (iter != proxy_hosts_.end()) { |
1711 delete iter->second; | 1724 delete iter->second; |
1712 proxy_hosts_.erase(iter); | 1725 proxy_hosts_.erase(iter); |
1713 } | 1726 } |
1714 } | 1727 } |
1715 | 1728 |
1716 } // namespace content | 1729 } // namespace content |
OLD | NEW |