| 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" | |
| 8 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 9 #include "base/metrics/histogram_macros.h" | |
| 10 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
| 11 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 12 #include "base/trace_event/trace_event.h" | 10 #include "base/trace_event/trace_event.h" |
| 13 #include "base/trace_event/trace_event_argument.h" | 11 #include "base/trace_event/trace_event_argument.h" |
| 14 #include "components/subresource_filter/content/browser/content_activation_list_
utils.h" | 12 #include "components/subresource_filter/content/browser/content_activation_list_
utils.h" |
| 15 #include "components/subresource_filter/content/browser/subresource_filter_clien
t.h" | 13 #include "components/subresource_filter/content/browser/subresource_filter_clien
t.h" |
| 16 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" | 14 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" |
| 17 #include "components/subresource_filter/core/common/activation_list.h" | 15 #include "components/subresource_filter/core/common/activation_list.h" |
| 18 #include "components/subresource_filter/core/common/activation_state.h" | 16 #include "components/subresource_filter/core/common/activation_state.h" |
| 19 #include "content/public/browser/navigation_handle.h" | 17 #include "content/public/browser/navigation_handle.h" |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 return true; | 207 return true; |
| 210 } | 208 } |
| 211 return false; | 209 return false; |
| 212 case ActivationScope::NO_SITES: | 210 case ActivationScope::NO_SITES: |
| 213 return false; | 211 return false; |
| 214 } | 212 } |
| 215 NOTREACHED(); | 213 NOTREACHED(); |
| 216 return false; | 214 return false; |
| 217 } | 215 } |
| 218 | 216 |
| 219 void ContentSubresourceFilterDriverFactory::OnReloadRequested() { | |
| 220 UMA_HISTOGRAM_BOOLEAN("SubresourceFilter.Prompt.NumReloads", true); | |
| 221 const GURL& whitelist_url = web_contents()->GetLastCommittedURL(); | |
| 222 | |
| 223 // Only whitelist via content settings when using the experimental UI, | |
| 224 // otherwise could get into a situation where content settings cannot be | |
| 225 // adjusted. | |
| 226 if (base::FeatureList::IsEnabled( | |
| 227 subresource_filter::kSafeBrowsingSubresourceFilterExperimentalUI)) { | |
| 228 client_->WhitelistByContentSettings(whitelist_url); | |
| 229 } else { | |
| 230 client_->WhitelistInCurrentWebContents(whitelist_url); | |
| 231 } | |
| 232 web_contents()->GetController().Reload(content::ReloadType::NORMAL, true); | |
| 233 } | |
| 234 | |
| 235 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { | 217 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() { |
| 236 if (activation_options_.should_suppress_notifications) | 218 if (activation_options_.should_suppress_notifications) |
| 237 return; | 219 return; |
| 238 client_->ToggleNotificationVisibility(activation_options_.activation_level == | 220 client_->ToggleNotificationVisibility(activation_options_.activation_level == |
| 239 ActivationLevel::ENABLED); | 221 ActivationLevel::ENABLED); |
| 240 } | 222 } |
| 241 | 223 |
| 242 void ContentSubresourceFilterDriverFactory::DidStartNavigation( | 224 void ContentSubresourceFilterDriverFactory::DidStartNavigation( |
| 243 content::NavigationHandle* navigation_handle) { | 225 content::NavigationHandle* navigation_handle) { |
| 244 if (navigation_handle->IsInMainFrame() && | 226 if (navigation_handle->IsInMainFrame() && |
| 245 !navigation_handle->IsSameDocument()) { | 227 !navigation_handle->IsSameDocument()) { |
| 246 activation_decision_ = ActivationDecision::UNKNOWN; | 228 activation_decision_ = ActivationDecision::UNKNOWN; |
| 247 client_->ToggleNotificationVisibility(false); | 229 client_->ToggleNotificationVisibility(false); |
| 248 } | 230 } |
| 249 } | 231 } |
| 250 | 232 |
| 251 void ContentSubresourceFilterDriverFactory::DidFinishNavigation( | 233 void ContentSubresourceFilterDriverFactory::DidFinishNavigation( |
| 252 content::NavigationHandle* navigation_handle) { | 234 content::NavigationHandle* navigation_handle) { |
| 253 if (navigation_handle->IsInMainFrame() && | 235 if (navigation_handle->IsInMainFrame() && |
| 254 !navigation_handle->IsSameDocument() && | 236 !navigation_handle->IsSameDocument() && |
| 255 activation_decision_ == ActivationDecision::UNKNOWN && | 237 activation_decision_ == ActivationDecision::UNKNOWN && |
| 256 navigation_handle->HasCommitted()) { | 238 navigation_handle->HasCommitted()) { |
| 257 activation_decision_ = ActivationDecision::ACTIVATION_DISABLED; | 239 activation_decision_ = ActivationDecision::ACTIVATION_DISABLED; |
| 258 activation_options_ = Configuration::ActivationOptions(); | 240 activation_options_ = Configuration::ActivationOptions(); |
| 259 } | 241 } |
| 260 } | 242 } |
| 261 | 243 |
| 262 } // namespace subresource_filter | 244 } // namespace subresource_filter |
| OLD | NEW |