Chromium Code Reviews| Index: content/browser/frame_host/navigation_handle_impl.cc |
| diff --git a/content/browser/frame_host/navigation_handle_impl.cc b/content/browser/frame_host/navigation_handle_impl.cc |
| index 93d6b99d2dfa2acf4898ce6216306ed2dd67302c..21ae9ae6c082644a35b4abad1bbee2a050991f90 100644 |
| --- a/content/browser/frame_host/navigation_handle_impl.cc |
| +++ b/content/browser/frame_host/navigation_handle_impl.cc |
| @@ -9,6 +9,7 @@ |
| #include "content/browser/browsing_data/clear_site_data_throttle.h" |
| #include "content/browser/child_process_security_policy_impl.h" |
| #include "content/browser/devtools/render_frame_devtools_agent_host.h" |
| +#include "content/browser/frame_host/ancestor_throttle.h" |
| #include "content/browser/frame_host/debug_urls.h" |
| #include "content/browser/frame_host/frame_tree_node.h" |
| #include "content/browser/frame_host/navigator.h" |
| @@ -287,7 +288,9 @@ void NavigationHandleImpl::Resume() { |
| void NavigationHandleImpl::CancelDeferredNavigation( |
| NavigationThrottle::ThrottleCheckResult result) { |
| - DCHECK(state_ == DEFERRING_START || state_ == DEFERRING_REDIRECT); |
| + DCHECK(state_ == DEFERRING_START || |
| + state_ == DEFERRING_REDIRECT || |
| + state_ == DEFERRING_RESPONSE); |
| DCHECK(result == NavigationThrottle::CANCEL_AND_IGNORE || |
| result == NavigationThrottle::CANCEL); |
| state_ = CANCELING; |
| @@ -592,6 +595,9 @@ NavigationHandleImpl::CheckWillStartRequest() { |
| state_ = DEFERRING_START; |
| next_index_ = i + 1; |
| return result; |
| + |
| + case NavigationThrottle::BLOCK_RESPONSE: |
| + NOTREACHED(); |
| } |
| } |
| next_index_ = 0; |
| @@ -622,6 +628,7 @@ NavigationHandleImpl::CheckWillRedirectRequest() { |
| return result; |
| case NavigationThrottle::BLOCK_REQUEST: |
| + case NavigationThrottle::BLOCK_RESPONSE: |
| NOTREACHED(); |
| } |
| } |
| @@ -649,6 +656,7 @@ NavigationHandleImpl::CheckWillProcessResponse() { |
| case NavigationThrottle::CANCEL: |
| case NavigationThrottle::CANCEL_AND_IGNORE: |
| + case NavigationThrottle::BLOCK_RESPONSE: |
| state_ = CANCELING; |
| return result; |
| @@ -775,6 +783,7 @@ void NavigationHandleImpl::RegisterNavigationThrottles() { |
| // GetNavigationThrottles is not assigned to throttles_ directly because it |
| // would overwrite any throttle previously added with |
| // RegisterThrottleForTesting. |
| + |
|
clamy
2016/12/09 17:14:01
nit: no need for empty line here.
|
| ScopedVector<NavigationThrottle> throttles_to_register = |
| GetDelegate()->CreateThrottlesForNavigation(this); |
| std::unique_ptr<NavigationThrottle> devtools_throttle = |
| @@ -787,6 +796,11 @@ void NavigationHandleImpl::RegisterNavigationThrottles() { |
| if (clear_site_data_throttle) |
| throttles_to_register.push_back(std::move(clear_site_data_throttle)); |
| + std::unique_ptr<content::NavigationThrottle> ancestor_throttle = |
| + content::AncestorThrottle::MaybeCreateThrottleFor(this); |
| + if (ancestor_throttle) |
| + throttles_.push_back(std::move(ancestor_throttle)); |
| + |
| if (throttles_to_register.size() > 0) { |
| throttles_.insert(throttles_.begin(), throttles_to_register.begin(), |
| throttles_to_register.end()); |