| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 } | 422 } |
| 423 | 423 |
| 424 void RenderFrameHostManager::OnCrossSiteResponse( | 424 void RenderFrameHostManager::OnCrossSiteResponse( |
| 425 RenderFrameHostImpl* transferring_render_frame_host, | 425 RenderFrameHostImpl* transferring_render_frame_host, |
| 426 const GlobalRequestID& global_request_id, | 426 const GlobalRequestID& global_request_id, |
| 427 std::unique_ptr<CrossSiteTransferringRequest> | 427 std::unique_ptr<CrossSiteTransferringRequest> |
| 428 cross_site_transferring_request, | 428 cross_site_transferring_request, |
| 429 const std::vector<GURL>& transfer_url_chain, | 429 const std::vector<GURL>& transfer_url_chain, |
| 430 const Referrer& referrer, | 430 const Referrer& referrer, |
| 431 ui::PageTransition page_transition, | 431 ui::PageTransition page_transition, |
| 432 bool should_replace_current_entry) { | 432 bool should_replace_current_entry, |
| 433 const scoped_refptr<ResourceRequestBody>& resource_request_body) { |
| 433 // We should only get here for transfer navigations. Most cross-process | 434 // We should only get here for transfer navigations. Most cross-process |
| 434 // navigations can just continue and wait to run the unload handler (by | 435 // navigations can just continue and wait to run the unload handler (by |
| 435 // swapping out) when the new navigation commits. | 436 // swapping out) when the new navigation commits. |
| 436 CHECK(cross_site_transferring_request); | 437 CHECK(cross_site_transferring_request); |
| 437 | 438 |
| 438 // A transfer should only have come from our pending or current RFH. If it | 439 // A transfer should only have come from our pending or current RFH. If it |
| 439 // started as a cross-process navigation via OpenURL, this is the pending | 440 // started as a cross-process navigation via OpenURL, this is the pending |
| 440 // one. If it wasn't cross-process until the transfer, this is the current | 441 // one. If it wasn't cross-process until the transfer, this is the current |
| 441 // one. | 442 // one. |
| 442 // | 443 // |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 // the redirect chain. | 477 // the redirect chain. |
| 477 CHECK(transfer_url_chain.size()); | 478 CHECK(transfer_url_chain.size()); |
| 478 GURL transfer_url = transfer_url_chain.back(); | 479 GURL transfer_url = transfer_url_chain.back(); |
| 479 std::vector<GURL> rest_of_chain = transfer_url_chain; | 480 std::vector<GURL> rest_of_chain = transfer_url_chain; |
| 480 rest_of_chain.pop_back(); | 481 rest_of_chain.pop_back(); |
| 481 | 482 |
| 482 transferring_render_frame_host->frame_tree_node() | 483 transferring_render_frame_host->frame_tree_node() |
| 483 ->navigator() | 484 ->navigator() |
| 484 ->RequestTransferURL(transferring_render_frame_host, transfer_url, | 485 ->RequestTransferURL(transferring_render_frame_host, transfer_url, |
| 485 nullptr, rest_of_chain, referrer, page_transition, | 486 nullptr, rest_of_chain, referrer, page_transition, |
| 486 global_request_id, should_replace_current_entry); | 487 global_request_id, should_replace_current_entry, |
| 488 resource_request_body); |
| 487 | 489 |
| 488 // The transferring request was only needed during the RequestTransferURL | 490 // The transferring request was only needed during the RequestTransferURL |
| 489 // call, so it is safe to clear at this point. | 491 // call, so it is safe to clear at this point. |
| 490 cross_site_transferring_request_.reset(); | 492 cross_site_transferring_request_.reset(); |
| 491 | 493 |
| 492 // If the navigation continued, the NavigationHandle should have been | 494 // If the navigation continued, the NavigationHandle should have been |
| 493 // transfered to a RenderFrameHost. In the other cases, it should be cleared. | 495 // transfered to a RenderFrameHost. In the other cases, it should be cleared. |
| 494 transfer_navigation_handle_.reset(); | 496 transfer_navigation_handle_.reset(); |
| 495 | 497 |
| 496 // If the navigation in the new renderer did not start, inform the | 498 // If the navigation in the new renderer did not start, inform the |
| (...skipping 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2551 resolved_url)) { | 2553 resolved_url)) { |
| 2552 DCHECK(!dest_instance || | 2554 DCHECK(!dest_instance || |
| 2553 dest_instance == render_frame_host_->GetSiteInstance()); | 2555 dest_instance == render_frame_host_->GetSiteInstance()); |
| 2554 return false; | 2556 return false; |
| 2555 } | 2557 } |
| 2556 | 2558 |
| 2557 return true; | 2559 return true; |
| 2558 } | 2560 } |
| 2559 | 2561 |
| 2560 } // namespace content | 2562 } // namespace content |
| OLD | NEW |