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 90c0cb1883d1e5745533ad1ee9340bd526de8d57..213bd5f50f1482028061f9678a91223bfd569373 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 |
@@ -4,6 +4,8 @@ |
#include "components/subresource_filter/content/browser/content_subresource_filter_driver_factory.h" |
+#include <utility> |
+ |
#include "base/feature_list.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/rand_util.h" |
@@ -91,10 +93,7 @@ ContentSubresourceFilterDriverFactory::ContentSubresourceFilterDriverFactory( |
base::MakeUnique<ContentSubresourceFilterThrottleManager>( |
this, |
client_->GetRulesetDealer(), |
- web_contents)), |
- activation_level_(ActivationLevel::DISABLED), |
- activation_decision_(ActivationDecision::UNKNOWN), |
- measure_performance_(false) {} |
+ web_contents)) {} |
ContentSubresourceFilterDriverFactory:: |
~ContentSubresourceFilterDriverFactory() {} |
@@ -109,8 +108,7 @@ void ContentSubresourceFilterDriverFactory:: |
url, GetListForThreatTypeAndMetadata(threat_type, threat_type_metadata)); |
} |
-ContentSubresourceFilterDriverFactory::ActivationDecision |
-ContentSubresourceFilterDriverFactory:: |
+ActivationDecision ContentSubresourceFilterDriverFactory:: |
ComputeActivationDecisionForMainFrameNavigation( |
content::NavigationHandle* navigation_handle) const { |
const GURL& url(navigation_handle->GetURL()); |
@@ -196,31 +194,28 @@ void ContentSubresourceFilterDriverFactory::WillProcessResponse( |
client_->WhitelistInCurrentWebContents(url); |
} |
- activation_decision_ = |
+ ActivationDecision activation_decision = |
ComputeActivationDecisionForMainFrameNavigation(navigation_handle); |
- DCHECK(activation_decision_ != ActivationDecision::UNKNOWN); |
- if (activation_decision_ != ActivationDecision::ACTIVATED) { |
+ DCHECK(activation_decision != ActivationDecision::UNKNOWN); |
+ |
+ ActivationLevel activation_level = ActivationLevel::DISABLED; |
+ if (activation_decision != ActivationDecision::ACTIVATED) { |
ResetActivationState(); |
- return; |
+ } else { |
+ activation_level = configurations->the_one_and_only().activation_level; |
} |
- |
- activation_level_ = configurations->the_one_and_only().activation_level; |
- measure_performance_ = |
- activation_level_ != ActivationLevel::DISABLED && |
+ bool measure_performance = |
+ activation_level != ActivationLevel::DISABLED && |
ShouldMeasurePerformanceForPageLoad( |
configurations->the_one_and_only().performance_measurement_rate); |
- ActivationState state = ActivationState(activation_level_); |
- state.measure_performance = measure_performance_; |
- throttle_manager_->NotifyPageActivationComputed(navigation_handle, state); |
+ ActivationState state = ActivationState(activation_level); |
+ state.measure_performance = measure_performance; |
+ throttle_manager_->NotifyPageActivationComputed(navigation_handle, state, |
+ activation_decision); |
} |
void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { |
- const auto configurations = GetActiveConfigurations(); |
- if (configurations->the_one_and_only().should_suppress_notifications) |
- return; |
- |
- client_->ToggleNotificationVisibility(activation_level_ == |
- ActivationLevel::ENABLED); |
+ client_->ToggleNotificationVisibility(true); |
} |
bool ContentSubresourceFilterDriverFactory::ShouldSuppressActivation( |
@@ -231,15 +226,12 @@ bool ContentSubresourceFilterDriverFactory::ShouldSuppressActivation( |
void ContentSubresourceFilterDriverFactory::ResetActivationState() { |
navigation_chain_.clear(); |
activation_list_matches_.clear(); |
- activation_level_ = ActivationLevel::DISABLED; |
- measure_performance_ = false; |
} |
void ContentSubresourceFilterDriverFactory::DidStartNavigation( |
content::NavigationHandle* navigation_handle) { |
if (navigation_handle->IsInMainFrame() && |
!navigation_handle->IsSameDocument()) { |
- activation_decision_ = ActivationDecision::UNKNOWN; |
ResetActivationState(); |
navigation_chain_.push_back(navigation_handle->GetURL()); |
client_->ToggleNotificationVisibility(false); |