Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(673)

Unified Diff: components/safe_browsing_db/v4_database.h

Issue 2345573002: Each DatabaseManager gets to decide which stores to track (Closed)
Patch Set: Incorporated nparker@ feedback Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/safe_browsing_db/v4_database.h
diff --git a/components/safe_browsing_db/v4_database.h b/components/safe_browsing_db/v4_database.h
index 1365705d5661d6bd58937b0d1d0ee109c435b6b8..4220bf9d992d3af2214e55d5b6297222b28d415e 100644
--- a/components/safe_browsing_db/v4_database.h
+++ b/components/safe_browsing_db/v4_database.h
@@ -25,19 +25,32 @@ typedef base::Callback<void(std::unique_ptr<V4Database>)>
// requests.
typedef base::Callback<void()> DatabaseUpdatedCallback;
-// The set of interesting lists and ASCII filenames for their hash prefix
-// stores. The stores are created inside the user-data directory.
-// For instance, the UpdateListIdentifier could be for URL expressions for UwS
-// on Windows platform, and the corresponding file on disk could be named:
-// "uws_win_url.store"
+// Maps the UpdateListIdentifiers to their corresponding in-memory stores, which
+// contain the hash prefixes for that UpdateListIdentifier as well as manage
+// their storage on disk.
+typedef base::hash_map<UpdateListIdentifier, std::unique_ptr<V4Store>> StoreMap;
+
// TODO(vakh): Find the canonical place where these are defined and update the
// comment to point to that place.
-typedef base::hash_map<UpdateListIdentifier, std::string> StoreFileNameMap;
+struct StoreIdAndFileName {
+ // The list being read from/written to the disk.
+ UpdateListIdentifier list_id;
-// This hash_map maps the UpdateListIdentifiers to their corresponding in-memory
-// stores, which contain the hash prefixes for that UpdateListIdentifier as well
-// as manage their storage on disk.
-typedef base::hash_map<UpdateListIdentifier, std::unique_ptr<V4Store>> StoreMap;
+ // The ASCII name of the file on disk. This file is created inside the
+ // user-data directory. For instance, the UpdateListIdentifier could be for
+ // URL expressions for UwS on Windows platform, and the corresponding file on
+ // disk could be named: "UrlUws.store"
+ std::string filename;
+
+ StoreIdAndFileName(const UpdateListIdentifier& list_id,
+ const std::string& filename);
+ ~StoreIdAndFileName();
+
+ private:
+ StoreIdAndFileName();
+};
+
+using StoreIdAndFileNames = std::vector<StoreIdAndFileName>;
// Factory for creating V4Database. Tests implement this factory to create fake
// databases for testing.
@@ -47,7 +60,7 @@ class V4DatabaseFactory {
virtual V4Database* CreateV4Database(
const scoped_refptr<base::SequencedTaskRunner>& db_task_runner,
const base::FilePath& base_dir_path,
- const StoreFileNameMap& store_file_name_map) = 0;
+ const StoreIdAndFileNames& store_id_file_names) = 0;
};
// The on-disk databases are shared among all profiles, as it doesn't contain
@@ -66,7 +79,7 @@ class V4Database {
static void Create(
const scoped_refptr<base::SequencedTaskRunner>& db_task_runner,
const base::FilePath& base_path,
- const StoreFileNameMap& store_file_name_map,
+ const StoreIdAndFileNames& store_id_file_names,
NewDatabaseReadyCallback callback);
// Destroys the provided v4_database on its task_runner since this may be a
@@ -88,7 +101,7 @@ class V4Database {
// store along with the matching hash prefix in |matched_hash_prefix_map|.
virtual void GetStoresMatchingFullHash(
const FullHash& full_hash,
- const base::hash_set<UpdateListIdentifier>& stores_to_look,
+ const std::unordered_set<UpdateListIdentifier>& stores_to_look,
StoreAndHashPrefixes* matched_store_and_full_hashes);
// Deletes the current database and creates a new one.
@@ -120,7 +133,7 @@ class V4Database {
static void CreateOnTaskRunner(
const scoped_refptr<base::SequencedTaskRunner>& db_task_runner,
const base::FilePath& base_path,
- const StoreFileNameMap& store_file_name_map,
+ const StoreIdAndFileNames& store_id_file_names,
const scoped_refptr<base::SingleThreadTaskRunner>& callback_task_runner,
NewDatabaseReadyCallback callback);

Powered by Google App Engine
This is Rietveld 408576698