OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/navigation_request.h" | 5 #include "content/browser/frame_host/navigation_request.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "content/browser/appcache/appcache_navigation_handle.h" | 10 #include "content/browser/appcache/appcache_navigation_handle.h" |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
561 on_start_checks_complete_closure_.Run(); | 561 on_start_checks_complete_closure_.Run(); |
562 | 562 |
563 // Abort the request if needed. This will destroy the NavigationRequest. | 563 // Abort the request if needed. This will destroy the NavigationRequest. |
564 if (result == NavigationThrottle::CANCEL_AND_IGNORE || | 564 if (result == NavigationThrottle::CANCEL_AND_IGNORE || |
565 result == NavigationThrottle::CANCEL) { | 565 result == NavigationThrottle::CANCEL) { |
566 // TODO(clamy): distinguish between CANCEL and CANCEL_AND_IGNORE. | 566 // TODO(clamy): distinguish between CANCEL and CANCEL_AND_IGNORE. |
567 frame_tree_node_->ResetNavigationRequest(false); | 567 frame_tree_node_->ResetNavigationRequest(false); |
568 return; | 568 return; |
569 } | 569 } |
570 | 570 |
571 if (result == NavigationThrottle::BLOCK_REQUEST) { | 571 if (result == NavigationThrottle::BLOCK_REQUEST || |
| 572 result == NavigationThrottle::BLOCK_REQUEST_AND_COLLAPSE) { |
572 OnRequestFailed(false, net::ERR_BLOCKED_BY_CLIENT); | 573 OnRequestFailed(false, net::ERR_BLOCKED_BY_CLIENT); |
573 // DO NOT ADD CODE after this. The previous call to OnRequestFailed has | 574 // DO NOT ADD CODE after this. The previous call to OnRequestFailed has |
574 // destroyed the NavigationRequest. | 575 // destroyed the NavigationRequest. |
575 return; | 576 return; |
576 } | 577 } |
577 | 578 |
578 // Use the SiteInstance of the navigating RenderFrameHost to get access to | 579 // Use the SiteInstance of the navigating RenderFrameHost to get access to |
579 // the StoragePartition. Using the url of the navigation will result in a | 580 // the StoragePartition. Using the url of the navigation will result in a |
580 // wrong StoragePartition being picked when a WebView is navigating. | 581 // wrong StoragePartition being picked when a WebView is navigating. |
581 DCHECK_NE(AssociatedSiteInstanceType::NONE, associated_site_instance_type_); | 582 DCHECK_NE(AssociatedSiteInstanceType::NONE, associated_site_instance_type_); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 navigation_handle_->appcache_handle(), this); | 649 navigation_handle_->appcache_handle(), this); |
649 } | 650 } |
650 | 651 |
651 void NavigationRequest::OnRedirectChecksComplete( | 652 void NavigationRequest::OnRedirectChecksComplete( |
652 NavigationThrottle::ThrottleCheckResult result) { | 653 NavigationThrottle::ThrottleCheckResult result) { |
653 DCHECK(result != NavigationThrottle::DEFER); | 654 DCHECK(result != NavigationThrottle::DEFER); |
654 DCHECK(result != NavigationThrottle::BLOCK_RESPONSE); | 655 DCHECK(result != NavigationThrottle::BLOCK_RESPONSE); |
655 | 656 |
656 // Abort the request if needed. This will destroy the NavigationRequest. | 657 // Abort the request if needed. This will destroy the NavigationRequest. |
657 if (result == NavigationThrottle::CANCEL_AND_IGNORE || | 658 if (result == NavigationThrottle::CANCEL_AND_IGNORE || |
658 result == NavigationThrottle::CANCEL) { | 659 result == NavigationThrottle::CANCEL || |
659 // TODO(clamy): distinguish between CANCEL and CANCEL_AND_IGNORE. | 660 result == NavigationThrottle::BLOCK_REQUEST_AND_COLLAPSE) { |
| 661 // TODO(clamy): distinguish between CANCEL and CANCEL_AND_IGNORE, |
| 662 // as well as BLOCK_REQUEST_AND_COLLAPSE if needed. |
660 frame_tree_node_->ResetNavigationRequest(false); | 663 frame_tree_node_->ResetNavigationRequest(false); |
661 return; | 664 return; |
662 } | 665 } |
663 | 666 |
664 loader_->FollowRedirect(); | 667 loader_->FollowRedirect(); |
665 } | 668 } |
666 | 669 |
667 void NavigationRequest::OnWillProcessResponseChecksComplete( | 670 void NavigationRequest::OnWillProcessResponseChecksComplete( |
668 NavigationThrottle::ThrottleCheckResult result) { | 671 NavigationThrottle::ThrottleCheckResult result) { |
669 DCHECK(result != NavigationThrottle::DEFER); | 672 DCHECK(result != NavigationThrottle::DEFER); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 DCHECK_EQ(request_params_.has_user_gesture, begin_params_.has_user_gesture); | 716 DCHECK_EQ(request_params_.has_user_gesture, begin_params_.has_user_gesture); |
714 | 717 |
715 render_frame_host->CommitNavigation(response_.get(), std::move(body_), | 718 render_frame_host->CommitNavigation(response_.get(), std::move(body_), |
716 common_params_, request_params_, | 719 common_params_, request_params_, |
717 is_view_source_); | 720 is_view_source_); |
718 | 721 |
719 frame_tree_node_->ResetNavigationRequest(true); | 722 frame_tree_node_->ResetNavigationRequest(true); |
720 } | 723 } |
721 | 724 |
722 } // namespace content | 725 } // namespace content |
OLD | NEW |