Chromium Code Reviews| 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..af21ad778dd206334f6b699e7e71c56616830dd8 100644 |
| --- a/chrome/browser/safe_browsing/safe_browsing_service.cc |
| +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc |
| @@ -39,7 +39,6 @@ |
| #include "components/safe_browsing/common/safebrowsing_constants.h" |
| #include "components/safe_browsing/common/safebrowsing_switches.h" |
| #include "components/safe_browsing_db/database_manager.h" |
| -#include "components/safe_browsing_db/safe_browsing_prefs.h" |
| #include "components/safe_browsing_db/v4_feature_list.h" |
| #include "components/safe_browsing_db/v4_get_hash_protocol_manager.h" |
| #include "components/safe_browsing_db/v4_local_database_manager.h" |
| @@ -297,6 +296,7 @@ SafeBrowsingService* SafeBrowsingService::CreateSafeBrowsingService() { |
| SafeBrowsingService::SafeBrowsingService() |
| : services_delegate_(ServicesDelegate::Create(this)), |
| + estimated_extended_reporting_by_prefs_(SBER_LEVEL_OFF), |
| enabled_(false), |
| enabled_by_prefs_(false), |
| enabled_v4_only_(safe_browsing::V4FeatureList::IsV4OnlyEnabled()) {} |
| @@ -671,9 +671,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( |
| @@ -721,24 +721,28 @@ SafeBrowsingService::RegisterShutdownCallback( |
| void SafeBrowsingService::RefreshState() { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| // Check if any profile requires the service to be active. |
| - bool enable = false; |
| + enabled_by_prefs_ = false; |
| + estimated_extended_reporting_by_prefs_ = SBER_LEVEL_OFF; |
| for (const auto& pref : prefs_map_) { |
| if (pref.first->GetBoolean(prefs::kSafeBrowsingEnabled)) { |
| - enable = true; |
| - break; |
| + enabled_by_prefs_ = true; |
| + ExtendedReportingLevel erl = |
| + safe_browsing::GetExtendedReportingLevel(*pref.first); |
| + if (erl != SBER_LEVEL_OFF) { |
| + estimated_extended_reporting_by_prefs_ = erl; |
|
lpz
2017/01/26 16:36:46
nit: would you perhaps care about finding the *max
vakh (use Gerrit instead)
2017/01/26 18:14:30
That would bias us towards Scout and I am not sure
|
| + break; |
| + } |
| } |
| } |
| - 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( |