Index: components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.cc |
diff --git a/components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.cc b/components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.cc |
index e300a20d1df0cf40948b8455492991dffa9e8259..9ea36959ab15b71f32b08c1d651e77303817dec0 100644 |
--- a/components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.cc |
+++ b/components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.cc |
@@ -21,7 +21,8 @@ ActivationStateComputingNavigationThrottle::CreateForMainFrame( |
content::NavigationHandle* navigation_handle) { |
DCHECK(navigation_handle->IsInMainFrame()); |
return base::WrapUnique(new ActivationStateComputingNavigationThrottle( |
- navigation_handle, base::Optional<ActivationState>(), nullptr)); |
+ navigation_handle, base::Optional<ActivationState>(), nullptr, |
+ base::OnceClosure())); |
} |
// static |
@@ -29,23 +30,28 @@ std::unique_ptr<ActivationStateComputingNavigationThrottle> |
ActivationStateComputingNavigationThrottle::CreateForSubframe( |
content::NavigationHandle* navigation_handle, |
VerifiedRuleset::Handle* ruleset_handle, |
- const ActivationState& parent_activation_state) { |
+ const ActivationState& parent_activation_state, |
+ base::OnceClosure first_disallowed_load_callback) { |
DCHECK(!navigation_handle->IsInMainFrame()); |
DCHECK_NE(ActivationLevel::DISABLED, |
parent_activation_state.activation_level); |
DCHECK(ruleset_handle); |
return base::WrapUnique(new ActivationStateComputingNavigationThrottle( |
- navigation_handle, parent_activation_state, ruleset_handle)); |
+ navigation_handle, parent_activation_state, ruleset_handle, |
+ std::move(first_disallowed_load_callback))); |
} |
ActivationStateComputingNavigationThrottle:: |
ActivationStateComputingNavigationThrottle( |
content::NavigationHandle* navigation_handle, |
const base::Optional<ActivationState> parent_activation_state, |
- VerifiedRuleset::Handle* ruleset_handle) |
+ VerifiedRuleset::Handle* ruleset_handle, |
+ base::OnceClosure first_disallowed_load_callback) |
: content::NavigationThrottle(navigation_handle), |
parent_activation_state_(parent_activation_state), |
ruleset_handle_(ruleset_handle), |
+ first_disallowed_load_callback_( |
+ std::move(first_disallowed_load_callback)), |
weak_ptr_factory_(this) {} |
ActivationStateComputingNavigationThrottle:: |
@@ -54,7 +60,8 @@ ActivationStateComputingNavigationThrottle:: |
void ActivationStateComputingNavigationThrottle:: |
NotifyPageActivationWithRuleset( |
VerifiedRuleset::Handle* ruleset_handle, |
- const ActivationState& page_activation_state) { |
+ const ActivationState& page_activation_state, |
+ base::OnceClosure first_disallowed_load_callback) { |
DCHECK(navigation_handle()->IsInMainFrame()); |
DCHECK(!parent_activation_state_); |
DCHECK(!activation_state_); |
@@ -64,6 +71,7 @@ void ActivationStateComputingNavigationThrottle:: |
!ruleset_handle); |
parent_activation_state_.emplace(page_activation_state); |
ruleset_handle_ = ruleset_handle; |
+ first_disallowed_load_callback_ = std::move(first_disallowed_load_callback); |
} |
content::NavigationThrottle::ThrottleCheckResult |
@@ -88,14 +96,12 @@ ActivationStateComputingNavigationThrottle::WillProcessResponse() { |
->GetParent() |
->GetLastCommittedOrigin(); |
} |
- // TODO(csharrison): Replace the empty OnceClosure with a UI-triggering |
- // callback. |
async_filter_ = base::MakeUnique<AsyncDocumentSubresourceFilter>( |
ruleset_handle_, std::move(params), |
base::Bind(&ActivationStateComputingNavigationThrottle:: |
SetActivationStateAndResume, |
weak_ptr_factory_.GetWeakPtr()), |
- base::OnceClosure()); |
+ std::move(first_disallowed_load_callback_)); |
return content::NavigationThrottle::ThrottleCheckResult::DEFER; |
} |