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 a9e5bfc1d89e8bc9d8c8bba0c3a78489fe6ea86b..a43e30b0e9663e9cb6db6569ac0aaa98d0dc1d16 100644 |
| --- a/chrome/browser/safe_browsing/safe_browsing_service.cc |
| +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/command_line.h" |
| #include "base/lazy_instance.h" |
| #include "base/macros.h" |
| +#include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/path_service.h" |
| #include "base/stl_util.h" |
| @@ -38,6 +39,7 @@ |
| #include "components/prefs/pref_service.h" |
| #include "components/safe_browsing_db/database_manager.h" |
| #include "components/safe_browsing_db/v4_get_hash_protocol_manager.h" |
| +#include "components/safe_browsing_db/v4_local_database_manager.h" |
| #include "components/user_prefs/tracked/tracked_preference_validation_delegate.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/cookie_store_factory.h" |
| @@ -261,6 +263,10 @@ void SafeBrowsingService::Initialize() { |
| database_manager_ = CreateDatabaseManager(); |
| + if (IsV4LocalDatabaseManagerEnabled()) { |
| + v4_local_database_manager_ = CreateV4LocalDatabaseManager(); |
| + } |
| + |
| services_delegate_->InitializeCsdService(url_request_context_getter_.get()); |
| services_delegate_->InitializeServices(); |
| @@ -396,6 +402,11 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { |
| return new SafeBrowsingUIManager(this); |
| } |
| + |
| +V4LocalDatabaseManager* SafeBrowsingService::CreateV4LocalDatabaseManager() { |
|
Nathan Parker
2016/04/28 17:33:21
This should probably go in the services_delegate[_
vakh (use Gerrit instead)
2016/04/29 18:06:47
Done.
|
| + return new V4LocalDatabaseManager(); |
| +} |
| + |
| SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() { |
| #if defined(SAFE_BROWSING_DB_LOCAL) |
| return new LocalSafeBrowsingDatabaseManager(this); |
| @@ -479,6 +490,12 @@ SafeBrowsingService::GetProtocolManagerDelegate() { |
| #endif |
| } |
| +bool SafeBrowsingService::IsV4LocalDatabaseManagerEnabled() { |
| + const std::string group_name = base::FieldTrialList::FindFullName( |
| + "SafeBrowsingV4LocalDatabaseManagerEnabled"); |
| + return StartsWith(group_name, "Enabled", base::CompareCase::SENSITIVE); |
| +} |
| + |
| void SafeBrowsingService::StartOnIOThread( |
| net::URLRequestContextGetter* url_request_context_getter) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| @@ -504,6 +521,12 @@ void SafeBrowsingService::StartOnIOThread( |
| } |
| #endif |
| + if (IsV4LocalDatabaseManagerEnabled()) { |
|
Nathan Parker
2016/04/28 17:33:21
Rather than checking the field trial again (it sho
vakh (use Gerrit instead)
2016/04/29 18:06:47
Done.
|
| + DCHECK(v4_local_database_manager_.get()); |
| + v4_local_database_manager_->StartOnIOThread(url_request_context_getter, |
| + v4_config); |
| + } |
| + |
| DCHECK(!ping_manager_); |
| ping_manager_ = SafeBrowsingPingManager::Create( |
| url_request_context_getter, config); |