Chromium Code Reviews| 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/logging.h" | 10 #include "base/logging.h" |
| (...skipping 1328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1339 SiteInstance* old_instance, | 1339 SiteInstance* old_instance, |
| 1340 SiteInstance* new_instance, | 1340 SiteInstance* new_instance, |
| 1341 bool is_main_frame) { | 1341 bool is_main_frame) { |
| 1342 int create_render_frame_flags = 0; | 1342 int create_render_frame_flags = 0; |
| 1343 if (is_main_frame) | 1343 if (is_main_frame) |
| 1344 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; | 1344 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; |
| 1345 | 1345 |
| 1346 if (delegate_->IsHidden()) | 1346 if (delegate_->IsHidden()) |
| 1347 create_render_frame_flags |= CREATE_RF_HIDDEN; | 1347 create_render_frame_flags |= CREATE_RF_HIDDEN; |
| 1348 | 1348 |
| 1349 // The process for the new SiteInstance may (if we're sharing a process with | |
| 1350 // another host that already initialized it) or may not (we have our own | |
| 1351 // process or the old process crashed) have been initialized. Calling Init | |
|
nasko
2015/05/14 22:10:52
nit: s/old/existing/
alexmos
2015/05/14 22:54:16
Done.
| |
| 1352 // multiple times will be ignored, so this is safe. | |
| 1353 new_instance->GetProcess()->Init(); | |
|
alexmos
2015/05/14 22:02:50
Should I also return early here if this fails? Cr
nasko
2015/05/14 22:10:52
Returning early is probably desired. Looking at th
alexmos
2015/05/14 22:54:15
I added the early return and moved CancelPending t
| |
| 1354 | |
| 1349 int opener_route_id = CreateOpenerRenderViewsIfNeeded( | 1355 int opener_route_id = CreateOpenerRenderViewsIfNeeded( |
| 1350 old_instance, new_instance, &create_render_frame_flags); | 1356 old_instance, new_instance, &create_render_frame_flags); |
| 1351 | 1357 |
| 1352 if (pending_render_frame_host_) | 1358 if (pending_render_frame_host_) |
| 1353 CancelPending(); | 1359 CancelPending(); |
| 1354 | 1360 |
| 1355 // Create a non-swapped-out RFH with the given opener. | 1361 // Create a non-swapped-out RFH with the given opener. |
| 1356 pending_render_frame_host_ = | 1362 pending_render_frame_host_ = |
| 1357 CreateRenderFrame(new_instance, pending_web_ui(), opener_route_id, | 1363 CreateRenderFrame(new_instance, pending_web_ui(), opener_route_id, |
| 1358 create_render_frame_flags, nullptr); | 1364 create_render_frame_flags, nullptr); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1428 int bindings) { | 1434 int bindings) { |
| 1429 CHECK(new_instance); | 1435 CHECK(new_instance); |
| 1430 CHECK_NE(old_instance, new_instance); | 1436 CHECK_NE(old_instance, new_instance); |
| 1431 CHECK(!should_reuse_web_ui_); | 1437 CHECK(!should_reuse_web_ui_); |
| 1432 | 1438 |
| 1433 // Note: |speculative_web_ui_| must be initialized before starting the | 1439 // Note: |speculative_web_ui_| must be initialized before starting the |
| 1434 // |speculative_render_frame_host_| creation steps otherwise the WebUI | 1440 // |speculative_render_frame_host_| creation steps otherwise the WebUI |
| 1435 // won't be properly initialized. | 1441 // won't be properly initialized. |
| 1436 speculative_web_ui_ = CreateWebUI(url, bindings); | 1442 speculative_web_ui_ = CreateWebUI(url, bindings); |
| 1437 | 1443 |
| 1444 // The process for the new SiteInstance may (if we're sharing a process with | |
| 1445 // another host that already initialized it) or may not (we have our own | |
| 1446 // process or the old process crashed) have been initialized. Calling Init | |
| 1447 // multiple times will be ignored, so this is safe. | |
| 1448 if (!new_instance->GetProcess()->Init()) | |
| 1449 return false; | |
| 1450 | |
| 1438 int create_render_frame_flags = 0; | 1451 int create_render_frame_flags = 0; |
| 1439 int opener_route_id = | 1452 int opener_route_id = |
| 1440 CreateOpenerRenderViewsIfNeeded(old_instance, new_instance, | 1453 CreateOpenerRenderViewsIfNeeded(old_instance, new_instance, |
| 1441 &create_render_frame_flags); | 1454 &create_render_frame_flags); |
| 1442 | 1455 |
| 1443 if (frame_tree_node_->IsMainFrame()) | 1456 if (frame_tree_node_->IsMainFrame()) |
| 1444 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; | 1457 create_render_frame_flags |= CREATE_RF_FOR_MAIN_FRAME_NAVIGATION; |
| 1445 if (delegate_->IsHidden()) | 1458 if (delegate_->IsHidden()) |
| 1446 create_render_frame_flags |= CREATE_RF_HIDDEN; | 1459 create_render_frame_flags |= CREATE_RF_HIDDEN; |
| 1447 speculative_render_frame_host_ = | 1460 speculative_render_frame_host_ = |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2118 void RenderFrameHostManager::DeleteRenderFrameProxyHost( | 2131 void RenderFrameHostManager::DeleteRenderFrameProxyHost( |
| 2119 SiteInstance* instance) { | 2132 SiteInstance* instance) { |
| 2120 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); | 2133 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); |
| 2121 if (iter != proxy_hosts_.end()) { | 2134 if (iter != proxy_hosts_.end()) { |
| 2122 delete iter->second; | 2135 delete iter->second; |
| 2123 proxy_hosts_.erase(iter); | 2136 proxy_hosts_.erase(iter); |
| 2124 } | 2137 } |
| 2125 } | 2138 } |
| 2126 | 2139 |
| 2127 } // namespace content | 2140 } // namespace content |
| OLD | NEW |