Index: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc |
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc |
index 7e856982e755f5a489d1c12440472a77a01a678b..c6052e11c19b741f8d7e8657fd7648cb46c44e4f 100644 |
--- a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc |
+++ b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc |
@@ -126,12 +126,6 @@ void ContentSubresourceFilterDriverFactory:: |
return; |
} |
- if (client_->ShouldSuppressActivation(navigation_handle)) { |
- activation_decision_ = ActivationDecision::URL_WHITELISTED; |
- activation_options_ = Configuration::ActivationOptions(); |
- return; |
- } |
- |
activation_options_ = highest_priority_activated_config->activation_options; |
activation_decision_ = |
activation_options_.activation_level == ActivationLevel::DISABLED |
@@ -202,6 +196,19 @@ void ContentSubresourceFilterDriverFactory::WillProcessResponse( |
ComputeActivationForMainFrameNavigation(navigation_handle); |
DCHECK_NE(activation_decision_, ActivationDecision::UNKNOWN); |
+ |
+ // Check for whitelisted status last, so that the client gets an accurate |
engedy
2017/05/11 09:13:14
follow up nit: Any reason to not do this block of
Charlie Harrison
2017/05/11 12:07:15
I chose to do this here so that we can continue to
|
+ // indication of whether there would be activation otherwise. |
+ bool whitelisted = client_->OnPageActivationComputed( |
+ navigation_handle, |
+ activation_options_.activation_level == ActivationLevel::ENABLED); |
+ |
+ // Only reset the activation decision reason if we would have activated. |
+ if (whitelisted && activation_decision_ == ActivationDecision::ACTIVATED) { |
+ activation_decision_ = ActivationDecision::URL_WHITELISTED; |
+ activation_options_ = Configuration::ActivationOptions(); |
+ } |
+ |
if (activation_decision_ != ActivationDecision::ACTIVATED) { |
DCHECK_EQ(activation_options_.activation_level, ActivationLevel::DISABLED); |
return; |