Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc

Issue 2871013002: [subresource_filter] Refactor activation suppression (Closed)
Patch Set: rebase on #470635 Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h" 5 #include "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h"
6 6
7 #include "base/feature_list.h" 7 #include "base/feature_list.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 url, config.activation_conditions); 119 url, config.activation_conditions);
120 }); 120 });
121 121
122 if (highest_priority_activated_config == 122 if (highest_priority_activated_config ==
123 config_list->configs_by_decreasing_priority().end()) { 123 config_list->configs_by_decreasing_priority().end()) {
124 activation_decision_ = ActivationDecision::ACTIVATION_CONDITIONS_NOT_MET; 124 activation_decision_ = ActivationDecision::ACTIVATION_CONDITIONS_NOT_MET;
125 activation_options_ = Configuration::ActivationOptions(); 125 activation_options_ = Configuration::ActivationOptions();
126 return; 126 return;
127 } 127 }
128 128
129 // TODO(csharrison): The throttle manager also performs this check. Remove
130 // this one when the activation decision is sent directly to the throttle
131 // manager.
132 if (client_->ShouldSuppressActivation(navigation_handle)) { 129 if (client_->ShouldSuppressActivation(navigation_handle)) {
133 activation_decision_ = ActivationDecision::URL_WHITELISTED; 130 activation_decision_ = ActivationDecision::URL_WHITELISTED;
134 activation_options_ = Configuration::ActivationOptions(); 131 activation_options_ = Configuration::ActivationOptions();
135 return; 132 return;
136 } 133 }
137 134
138 activation_options_ = highest_priority_activated_config->activation_options; 135 activation_options_ = highest_priority_activated_config->activation_options;
139 activation_decision_ = 136 activation_decision_ =
140 activation_options_.activation_level == ActivationLevel::DISABLED 137 activation_options_.activation_level == ActivationLevel::DISABLED
141 ? ActivationDecision::ACTIVATION_DISABLED 138 ? ActivationDecision::ACTIVATION_DISABLED
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 throttle_manager_->NotifyPageActivationComputed(navigation_handle, state); 217 throttle_manager_->NotifyPageActivationComputed(navigation_handle, state);
221 } 218 }
222 219
223 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { 220 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() {
224 if (activation_options_.should_suppress_notifications) 221 if (activation_options_.should_suppress_notifications)
225 return; 222 return;
226 client_->ToggleNotificationVisibility(activation_options_.activation_level == 223 client_->ToggleNotificationVisibility(activation_options_.activation_level ==
227 ActivationLevel::ENABLED); 224 ActivationLevel::ENABLED);
228 } 225 }
229 226
230 bool ContentSubresourceFilterDriverFactory::ShouldSuppressActivation(
231 content::NavigationHandle* navigation_handle) {
232 return client_->ShouldSuppressActivation(navigation_handle);
233 }
234
235 void ContentSubresourceFilterDriverFactory::DidStartNavigation( 227 void ContentSubresourceFilterDriverFactory::DidStartNavigation(
236 content::NavigationHandle* navigation_handle) { 228 content::NavigationHandle* navigation_handle) {
237 if (navigation_handle->IsInMainFrame() && 229 if (navigation_handle->IsInMainFrame() &&
238 !navigation_handle->IsSameDocument()) { 230 !navigation_handle->IsSameDocument()) {
239 activation_decision_ = ActivationDecision::UNKNOWN; 231 activation_decision_ = ActivationDecision::UNKNOWN;
240 activation_list_matches_.clear(); 232 activation_list_matches_.clear();
241 navigation_chain_ = {navigation_handle->GetURL()}; 233 navigation_chain_ = {navigation_handle->GetURL()};
242 client_->ToggleNotificationVisibility(false); 234 client_->ToggleNotificationVisibility(false);
243 } 235 }
244 } 236 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SubresourceFilterOnly", hits_pattern, 328 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SubresourceFilterOnly", hits_pattern,
337 chain_size); 329 chain_size);
338 break; 330 break;
339 default: 331 default:
340 NOTREACHED(); 332 NOTREACHED();
341 break; 333 break;
342 } 334 }
343 } 335 }
344 336
345 } // namespace subresource_filter 337 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698