| 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 |