Index: components/safe_browsing_db/v4_database.cc |
diff --git a/components/safe_browsing_db/v4_database.cc b/components/safe_browsing_db/v4_database.cc |
index 8b20a88b3444cf5526903604da78e1f487b3f7b6..97b2e49392491f9d26316ae831b8b2fc89bff7c8 100644 |
--- a/components/safe_browsing_db/v4_database.cc |
+++ b/components/safe_browsing_db/v4_database.cc |
@@ -25,7 +25,16 @@ const char kV4DatabaseSizeMetric[] = "SafeBrowsing.V4Database.Size"; |
} // namespace |
// static |
-V4StoreFactory* V4Database::factory_ = NULL; |
+V4DatabaseFactory* V4Database::db_factory_ = NULL; |
+ |
+// static |
+V4StoreFactory* V4Database::store_factory_ = NULL; |
+ |
+V4Database* V4DatabaseFactory::Create( |
+ const scoped_refptr<base::SequencedTaskRunner>& db_task_runner, |
+ std::unique_ptr<StoreMap> store_map) { |
+ return new V4Database(db_task_runner, std::move(store_map)); |
+} |
// static |
void V4Database::Create( |
@@ -54,9 +63,9 @@ void V4Database::CreateOnTaskRunner( |
const TimeTicks create_start_time) { |
DCHECK(db_task_runner->RunsTasksOnCurrentThread()); |
- if (!factory_) { |
- factory_ = new V4StoreFactory(); |
- ANNOTATE_LEAKING_OBJECT_PTR(factory_); |
+ if (!store_factory_) { |
+ store_factory_ = new V4StoreFactory(); |
+ ANNOTATE_LEAKING_OBJECT_PTR(store_factory_); |
} |
if (!base::CreateDirectory(base_path)) { |
@@ -72,10 +81,15 @@ void V4Database::CreateOnTaskRunner( |
const base::FilePath store_path = base_path.AppendASCII(it.filename()); |
(*store_map)[it.list_id()].reset( |
- factory_->CreateV4Store(db_task_runner, store_path)); |
+ store_factory_->CreateV4Store(db_task_runner, store_path)); |
+ } |
+ |
+ if (!db_factory_) { |
+ db_factory_ = new V4DatabaseFactory(); |
+ ANNOTATE_LEAKING_OBJECT_PTR(db_factory_); |
} |
std::unique_ptr<V4Database> v4_database( |
- new V4Database(db_task_runner, std::move(store_map))); |
+ db_factory_->Create(db_task_runner, std::move(store_map))); |
// Database is done loading, pass it to the new_db_callback on the caller's |
// thread. This would unblock resource loads. |
@@ -89,8 +103,8 @@ void V4Database::CreateOnTaskRunner( |
V4Database::V4Database( |
const scoped_refptr<base::SequencedTaskRunner>& db_task_runner, |
std::unique_ptr<StoreMap> store_map) |
- : db_task_runner_(db_task_runner), |
- store_map_(std::move(store_map)), |
+ : store_map_(std::move(store_map)), |
+ db_task_runner_(db_task_runner), |
pending_store_updates_(0), |
weak_factory_on_io_(this) { |
DCHECK(db_task_runner->RunsTasksOnCurrentThread()); |
@@ -198,6 +212,8 @@ void V4Database::GetStoresMatchingFullHash( |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
matched_store_and_hash_prefixes->clear(); |
for (const ListIdentifier& identifier : stores_to_check) { |
+ LOG(ERROR) << "V4Database::GetStoresMatchingFullHash: store: " |
vakh (use Gerrit instead)
2017/02/06 18:25:08
Please ignore. Removed in the next patch.
Scott Hess - ex-Googler
2017/02/06 22:46:35
Acknowledged.
|
+ << identifier; |
const auto& store_pair = store_map_->find(identifier); |
DCHECK(store_pair != store_map_->end()); |
const std::unique_ptr<V4Store>& store = store_pair->second; |