| 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;
|
| + 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(
|
|
|