Index: chrome/browser/safe_browsing/safe_browsing_service.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc |
index 3071414c2277369dda797e2d03ec740e66339d7e..db8ef0eb7ecc7f3b92f1e508bf8c983039349cbd 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_service.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_service.cc |
@@ -299,6 +299,8 @@ SafeBrowsingService::SafeBrowsingService() |
: services_delegate_(ServicesDelegate::Create(this)), |
enabled_(false), |
enabled_by_prefs_(false), |
+ maybe_enabled_extended_reporting_by_prefs_(false), |
+ maybe_enabled_scout_reporting_by_prefs_(false), |
enabled_v4_only_(safe_browsing::V4FeatureList::IsV4OnlyEnabled()) {} |
SafeBrowsingService::~SafeBrowsingService() { |
@@ -671,9 +673,9 @@ void SafeBrowsingService::AddPrefService(PrefService* pref_service) { |
std::unique_ptr<PrefChangeRegistrar> registrar = |
base::MakeUnique<PrefChangeRegistrar>(); |
registrar->Init(pref_service); |
- registrar->Add(prefs::kSafeBrowsingEnabled, |
- base::Bind(&SafeBrowsingService::RefreshState, |
- base::Unretained(this))); |
+ registrar->Add( |
+ prefs::kSafeBrowsingEnabled, |
+ base::Bind(&SafeBrowsingService::RefreshState, base::Unretained(this))); |
// ClientSideDetectionService will need to be refresh the models |
// renderers have if extended-reporting changes. |
registrar->Add( |
@@ -720,25 +722,32 @@ SafeBrowsingService::RegisterShutdownCallback( |
void SafeBrowsingService::RefreshState() { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ |
Jialiu Lin
2017/01/25 02:03:29
nit: extra empty line.
vakh (use Gerrit instead)
2017/01/25 02:13:41
Was intentional but removed now.
|
// Check if any profile requires the service to be active. |
- bool enable = false; |
+ enabled_by_prefs_ = false; |
+ maybe_enabled_extended_reporting_by_prefs_ = false; |
+ maybe_enabled_scout_reporting_by_prefs_ = false; |
for (const auto& pref : prefs_map_) { |
if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) { |
- enable = true; |
- break; |
+ enabled_by_prefs_ = true; |
+ if (pref.first->GetBoolean( |
+ prefs::kSafeBrowsingExtendedReportingEnabled)) { |
+ maybe_enabled_extended_reporting_by_prefs_ = true; |
+ } |
+ if (pref.first->GetBoolean(prefs::kSafeBrowsingScoutReportingEnabled)) { |
+ maybe_enabled_scout_reporting_by_prefs_ = true; |
+ } |
} |
} |
- enabled_by_prefs_ = enable; |
- |
- if (enable) |
+ if (enabled_by_prefs_) |
Start(); |
else |
Stop(false); |
state_callback_list_.Notify(); |
- services_delegate_->RefreshState(enable); |
+ services_delegate_->RefreshState(enabled_by_prefs_); |
} |
void SafeBrowsingService::SendSerializedDownloadReport( |