| 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);
|
|
|