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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 cross_site_transferring_request(cross_site_transferring_request.Pass()), | 55 cross_site_transferring_request(cross_site_transferring_request.Pass()), |
56 transfer_url_chain(transfer_url_chain), | 56 transfer_url_chain(transfer_url_chain), |
57 referrer(referrer), | 57 referrer(referrer), |
58 page_transition(page_transition), | 58 page_transition(page_transition), |
59 render_frame_id(render_frame_id), | 59 render_frame_id(render_frame_id), |
60 should_replace_current_entry(should_replace_current_entry) { | 60 should_replace_current_entry(should_replace_current_entry) { |
61 } | 61 } |
62 | 62 |
63 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {} | 63 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {} |
64 | 64 |
| 65 RenderFrameHostManager::ResponseStartedParams::ResponseStartedParams( |
| 66 const GlobalRequestID& global_request_id) |
| 67 : global_request_id(global_request_id) { |
| 68 } |
| 69 |
| 70 RenderFrameHostManager::ResponseStartedParams::~ResponseStartedParams() {} |
| 71 |
65 bool RenderFrameHostManager::ClearRFHsPendingShutdown(FrameTreeNode* node) { | 72 bool RenderFrameHostManager::ClearRFHsPendingShutdown(FrameTreeNode* node) { |
66 node->render_manager()->pending_delete_hosts_.clear(); | 73 node->render_manager()->pending_delete_hosts_.clear(); |
67 return true; | 74 return true; |
68 } | 75 } |
69 | 76 |
70 RenderFrameHostManager::RenderFrameHostManager( | 77 RenderFrameHostManager::RenderFrameHostManager( |
71 FrameTreeNode* frame_tree_node, | 78 FrameTreeNode* frame_tree_node, |
72 RenderFrameHostDelegate* render_frame_delegate, | 79 RenderFrameHostDelegate* render_frame_delegate, |
73 RenderViewHostDelegate* render_view_delegate, | 80 RenderViewHostDelegate* render_view_delegate, |
74 RenderWidgetHostDelegate* render_widget_delegate, | 81 RenderWidgetHostDelegate* render_widget_delegate, |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 pending_nav_params_.reset(new PendingNavigationParams( | 348 pending_nav_params_.reset(new PendingNavigationParams( |
342 global_request_id, cross_site_transferring_request.Pass(), | 349 global_request_id, cross_site_transferring_request.Pass(), |
343 transfer_url_chain, referrer, page_transition, | 350 transfer_url_chain, referrer, page_transition, |
344 pending_render_frame_host->GetRoutingID(), | 351 pending_render_frame_host->GetRoutingID(), |
345 should_replace_current_entry)); | 352 should_replace_current_entry)); |
346 | 353 |
347 // Run the unload handler of the current page. | 354 // Run the unload handler of the current page. |
348 SwapOutOldPage(); | 355 SwapOutOldPage(); |
349 } | 356 } |
350 | 357 |
| 358 void RenderFrameHostManager::OnDeferredAfterResponseStarted( |
| 359 const GlobalRequestID& global_request_id, |
| 360 RenderFrameHostImpl* pending_render_frame_host) { |
| 361 DCHECK(!response_started_params_.get()); |
| 362 |
| 363 response_started_params_.reset(new ResponseStartedParams( |
| 364 global_request_id)); |
| 365 } |
| 366 |
| 367 void RenderFrameHostManager::SetHasPendingTransitionRequest( |
| 368 bool has_pending_transition) { |
| 369 render_frame_host_->render_view_host()->SetHasPendingTransitionRequest( |
| 370 has_pending_transition); |
| 371 } |
| 372 |
| 373 void RenderFrameHostManager::ResumeResponseDeferredAtStart() { |
| 374 DCHECK(response_started_params_.get()); |
| 375 |
| 376 RenderProcessHostImpl* process = |
| 377 static_cast<RenderProcessHostImpl*>( |
| 378 render_frame_host_->GetProcess()); |
| 379 process->ResumeResponseDeferredAtStart( |
| 380 response_started_params_->global_request_id); |
| 381 |
| 382 render_frame_host_->render_view_host()->SetHasPendingTransitionRequest(false); |
| 383 |
| 384 response_started_params_.reset(); |
| 385 } |
| 386 |
351 void RenderFrameHostManager::SwappedOut( | 387 void RenderFrameHostManager::SwappedOut( |
352 RenderFrameHostImpl* render_frame_host) { | 388 RenderFrameHostImpl* render_frame_host) { |
353 // Make sure this is from our current RFH, and that we have a pending | 389 // Make sure this is from our current RFH, and that we have a pending |
354 // navigation from OnCrossSiteResponse. (There may be no pending navigation | 390 // navigation from OnCrossSiteResponse. (There may be no pending navigation |
355 // for data URLs that don't make network requests, for example.) If not, | 391 // for data URLs that don't make network requests, for example.) If not, |
356 // just return early and ignore. | 392 // just return early and ignore. |
357 if (render_frame_host != render_frame_host_ || !pending_nav_params_.get()) { | 393 if (render_frame_host != render_frame_host_ || !pending_nav_params_.get()) { |
358 pending_nav_params_.reset(); | 394 pending_nav_params_.reset(); |
359 return; | 395 return; |
360 } | 396 } |
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1470 SiteInstance* instance) const { | 1506 SiteInstance* instance) const { |
1471 RenderFrameProxyHostMap::const_iterator iter = | 1507 RenderFrameProxyHostMap::const_iterator iter = |
1472 proxy_hosts_.find(instance->GetId()); | 1508 proxy_hosts_.find(instance->GetId()); |
1473 if (iter != proxy_hosts_.end()) | 1509 if (iter != proxy_hosts_.end()) |
1474 return iter->second; | 1510 return iter->second; |
1475 | 1511 |
1476 return NULL; | 1512 return NULL; |
1477 } | 1513 } |
1478 | 1514 |
1479 } // namespace content | 1515 } // namespace content |
OLD | NEW |