| OLD | NEW |
| 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/metrics/histogram_macros.h" | 8 #include "base/metrics/histogram_macros.h" |
| 9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 AddActivationListMatch( | 108 AddActivationListMatch( |
| 109 url, GetListForThreatTypeAndMetadata(threat_type, threat_type_metadata)); | 109 url, GetListForThreatTypeAndMetadata(threat_type, threat_type_metadata)); |
| 110 } | 110 } |
| 111 | 111 |
| 112 ContentSubresourceFilterDriverFactory::ActivationDecision | 112 ContentSubresourceFilterDriverFactory::ActivationDecision |
| 113 ContentSubresourceFilterDriverFactory:: | 113 ContentSubresourceFilterDriverFactory:: |
| 114 ComputeActivationDecisionForMainFrameNavigation( | 114 ComputeActivationDecisionForMainFrameNavigation( |
| 115 content::NavigationHandle* navigation_handle) const { | 115 content::NavigationHandle* navigation_handle) const { |
| 116 const GURL& url(navigation_handle->GetURL()); | 116 const GURL& url(navigation_handle->GetURL()); |
| 117 | 117 |
| 118 auto configurations = GetActiveConfigurations(); | 118 const auto configurations = GetActiveConfigurations(); |
| 119 if (configurations->the_one_and_only().activation_level == | 119 if (configurations->the_one_and_only().activation_level == |
| 120 ActivationLevel::DISABLED) | 120 ActivationLevel::DISABLED) |
| 121 return ActivationDecision::ACTIVATION_DISABLED; | 121 return ActivationDecision::ACTIVATION_DISABLED; |
| 122 | 122 |
| 123 if (configurations->the_one_and_only().activation_scope == | 123 if (configurations->the_one_and_only().activation_scope == |
| 124 ActivationScope::NO_SITES) | 124 ActivationScope::NO_SITES) |
| 125 return ActivationDecision::ACTIVATION_DISABLED; | 125 return ActivationDecision::ACTIVATION_DISABLED; |
| 126 | 126 |
| 127 if (!url.SchemeIsHTTPOrHTTPS()) | 127 if (!url.SchemeIsHTTPOrHTTPS()) |
| 128 return ActivationDecision::UNSUPPORTED_SCHEME; | 128 return ActivationDecision::UNSUPPORTED_SCHEME; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 navigation_handle->GetNetErrorCode() != net::OK) { | 182 navigation_handle->GetNetErrorCode() != net::OK) { |
| 183 return; | 183 return; |
| 184 } | 184 } |
| 185 | 185 |
| 186 const GURL& url = navigation_handle->GetURL(); | 186 const GURL& url = navigation_handle->GetURL(); |
| 187 const content::Referrer& referrer = navigation_handle->GetReferrer(); | 187 const content::Referrer& referrer = navigation_handle->GetReferrer(); |
| 188 ui::PageTransition transition = navigation_handle->GetPageTransition(); | 188 ui::PageTransition transition = navigation_handle->GetPageTransition(); |
| 189 | 189 |
| 190 RecordRedirectChainMatchPattern(); | 190 RecordRedirectChainMatchPattern(); |
| 191 | 191 |
| 192 auto configurations = GetActiveConfigurations(); | 192 const auto configurations = GetActiveConfigurations(); |
| 193 if (configurations->the_one_and_only().should_whitelist_site_on_reload && | 193 if (configurations->the_one_and_only().should_whitelist_site_on_reload && |
| 194 NavigationIsPageReload(url, referrer, transition)) { | 194 NavigationIsPageReload(url, referrer, transition)) { |
| 195 // Whitelist this host for the current as well as subsequent navigations. | 195 // Whitelist this host for the current as well as subsequent navigations. |
| 196 client_->WhitelistInCurrentWebContents(url); | 196 client_->WhitelistInCurrentWebContents(url); |
| 197 } | 197 } |
| 198 | 198 |
| 199 activation_decision_ = | 199 activation_decision_ = |
| 200 ComputeActivationDecisionForMainFrameNavigation(navigation_handle); | 200 ComputeActivationDecisionForMainFrameNavigation(navigation_handle); |
| 201 DCHECK(activation_decision_ != ActivationDecision::UNKNOWN); | 201 DCHECK(activation_decision_ != ActivationDecision::UNKNOWN); |
| 202 if (activation_decision_ != ActivationDecision::ACTIVATED) { | 202 if (activation_decision_ != ActivationDecision::ACTIVATED) { |
| 203 ResetActivationState(); | 203 ResetActivationState(); |
| 204 return; | 204 return; |
| 205 } | 205 } |
| 206 | 206 |
| 207 activation_level_ = configurations->the_one_and_only().activation_level; | 207 activation_level_ = configurations->the_one_and_only().activation_level; |
| 208 measure_performance_ = | 208 measure_performance_ = |
| 209 activation_level_ != ActivationLevel::DISABLED && | 209 activation_level_ != ActivationLevel::DISABLED && |
| 210 ShouldMeasurePerformanceForPageLoad( | 210 ShouldMeasurePerformanceForPageLoad( |
| 211 configurations->the_one_and_only().performance_measurement_rate); | 211 configurations->the_one_and_only().performance_measurement_rate); |
| 212 ActivationState state = ActivationState(activation_level_); | 212 ActivationState state = ActivationState(activation_level_); |
| 213 state.measure_performance = measure_performance_; | 213 state.measure_performance = measure_performance_; |
| 214 throttle_manager_->NotifyPageActivationComputed(navigation_handle, state); | 214 throttle_manager_->NotifyPageActivationComputed(navigation_handle, state); |
| 215 } | 215 } |
| 216 | 216 |
| 217 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { | 217 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { |
| 218 auto configurations = GetActiveConfigurations(); | 218 const auto configurations = GetActiveConfigurations(); |
| 219 if (configurations->the_one_and_only().should_suppress_notifications) | 219 if (configurations->the_one_and_only().should_suppress_notifications) |
| 220 return; | 220 return; |
| 221 | 221 |
| 222 client_->ToggleNotificationVisibility(activation_level_ == | 222 client_->ToggleNotificationVisibility(activation_level_ == |
| 223 ActivationLevel::ENABLED); | 223 ActivationLevel::ENABLED); |
| 224 } | 224 } |
| 225 | 225 |
| 226 bool ContentSubresourceFilterDriverFactory::ShouldSuppressActivation( | 226 bool ContentSubresourceFilterDriverFactory::ShouldSuppressActivation( |
| 227 content::NavigationHandle* navigation_handle) { | 227 content::NavigationHandle* navigation_handle) { |
| 228 return client_->ShouldSuppressActivation(navigation_handle); | 228 return client_->ShouldSuppressActivation(navigation_handle); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SubresourceFilterOnly", hits_pattern, | 328 REPORT_REDIRECT_PATTERN_FOR_SUFFIX("SubresourceFilterOnly", hits_pattern, |
| 329 chain_size); | 329 chain_size); |
| 330 break; | 330 break; |
| 331 default: | 331 default: |
| 332 NOTREACHED(); | 332 NOTREACHED(); |
| 333 break; | 333 break; |
| 334 } | 334 } |
| 335 } | 335 } |
| 336 | 336 |
| 337 } // namespace subresource_filter | 337 } // namespace subresource_filter |
| OLD | NEW |