| 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 5b1204fbcb145991ebc8a455bdb04cf400de05b0..3585f988ec0c7d90d6c5e6bd5c9a9fd4ac275b26 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
|
| @@ -22,7 +22,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
|
| @@ -30,23 +31,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::
|
| @@ -55,7 +61,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_);
|
| @@ -65,6 +72,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
|
| @@ -90,14 +98,12 @@ ActivationStateComputingNavigationThrottle::WillProcessResponse() {
|
| DCHECK(parent);
|
| params.parent_document_origin = parent->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;
|
| }
|
|
|
|
|