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

Unified Diff: chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc

Issue 1227973003: Componentize //chrome/browser/prefs/tracked. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 4 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: chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
diff --git a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc b/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
deleted file mode 100644
index 9ab446fac5e64f97e415509d6e385399008a92fe..0000000000000000000000000000000000000000
--- a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/prefs/tracked/pref_service_hash_store_contents.h"
-
-#include "base/prefs/pref_registry_simple.h"
-#include "base/prefs/pref_service.h"
-#include "base/prefs/scoped_user_pref_update.h"
-#include "base/values.h"
-
-namespace {
-
-// Implements get-or-create of a dictionary value and holds a
-// DictionaryPrefUpdate.
-class PrefServiceMutableDictionary
- : public HashStoreContents::MutableDictionary {
- public:
- // Creates an instance that provides mutable access to a dictionary value
- // named |key| that is a child of |kProfilePreferenceHashes| in
- // |prefs|.
- PrefServiceMutableDictionary(const std::string& key,
- PrefService* pref_service);
-
- // HashStoreContents::MutableDictionary implementation
- base::DictionaryValue* operator->() override;
-
- private:
- const std::string key_;
- DictionaryPrefUpdate update_;
-};
-
-PrefServiceMutableDictionary::PrefServiceMutableDictionary(
- const std::string& key,
- PrefService* pref_service)
- : key_(key),
- update_(pref_service,
- PrefServiceHashStoreContents::kProfilePreferenceHashes) {
- DCHECK(!key_.empty());
-}
-
-base::DictionaryValue* PrefServiceMutableDictionary::operator->() {
- base::DictionaryValue* dictionary = NULL;
- if (!update_->GetDictionaryWithoutPathExpansion(key_, &dictionary)) {
- dictionary = new base::DictionaryValue;
- update_->SetWithoutPathExpansion(key_, dictionary);
- }
- return dictionary;
-}
-
-} // namespace
-
-// static
-const char PrefServiceHashStoreContents::kProfilePreferenceHashes[] =
- "profile.preference_hashes";
-
-// static
-const char PrefServiceHashStoreContents::kHashOfHashesDict[] = "hash_of_hashes";
-
-// static
-const char PrefServiceHashStoreContents::kStoreVersionsDict[] =
- "store_versions";
-
-PrefServiceHashStoreContents::PrefServiceHashStoreContents(
- const std::string& hash_store_id,
- PrefService* pref_service)
- : hash_store_id_(hash_store_id), pref_service_(pref_service) {
- // TODO(erikwright): Remove in M40+.
- DictionaryPrefUpdate update(pref_service_, kProfilePreferenceHashes);
- update->RemovePath(kStoreVersionsDict, NULL);
-}
-
-// static
-void PrefServiceHashStoreContents::RegisterPrefs(PrefRegistrySimple* registry) {
- // Register the top level dictionary to map profile names to dictionaries of
- // tracked preferences.
- registry->RegisterDictionaryPref(kProfilePreferenceHashes);
-}
-
-// static
-void PrefServiceHashStoreContents::ResetAllPrefHashStores(
- PrefService* pref_service) {
- pref_service->ClearPref(kProfilePreferenceHashes);
-}
-
-std::string PrefServiceHashStoreContents::hash_store_id() const {
- return hash_store_id_;
-}
-
-void PrefServiceHashStoreContents::Reset() {
- DictionaryPrefUpdate update(pref_service_, kProfilePreferenceHashes);
-
- update->RemoveWithoutPathExpansion(hash_store_id_, NULL);
-
- // Remove this store's entry in the kHashOfHashesDict.
- base::DictionaryValue* hash_of_hashes_dict;
- if (update->GetDictionaryWithoutPathExpansion(kHashOfHashesDict,
- &hash_of_hashes_dict)) {
- hash_of_hashes_dict->RemoveWithoutPathExpansion(hash_store_id_, NULL);
- if (hash_of_hashes_dict->empty())
- update->RemovePath(kHashOfHashesDict, NULL);
- }
-
- if (update->empty())
- pref_service_->ClearPref(kProfilePreferenceHashes);
-}
-
-bool PrefServiceHashStoreContents::IsInitialized() const {
- const base::DictionaryValue* pref_hash_dicts =
- pref_service_->GetDictionary(kProfilePreferenceHashes);
- return pref_hash_dicts->GetDictionaryWithoutPathExpansion(hash_store_id_,
- NULL);
-}
-
-const base::DictionaryValue* PrefServiceHashStoreContents::GetContents() const {
- const base::DictionaryValue* pref_hash_dicts =
- pref_service_->GetDictionary(kProfilePreferenceHashes);
- const base::DictionaryValue* hashes_dict = NULL;
- pref_hash_dicts->GetDictionaryWithoutPathExpansion(hash_store_id_,
- &hashes_dict);
- return hashes_dict;
-}
-
-scoped_ptr<HashStoreContents::MutableDictionary>
-PrefServiceHashStoreContents::GetMutableContents() {
- return scoped_ptr<HashStoreContents::MutableDictionary>(
- new PrefServiceMutableDictionary(hash_store_id_, pref_service_));
-}
-
-std::string PrefServiceHashStoreContents::GetSuperMac() const {
- const base::DictionaryValue* pref_hash_dicts =
- pref_service_->GetDictionary(kProfilePreferenceHashes);
- const base::DictionaryValue* hash_of_hashes_dict = NULL;
- std::string hash_of_hashes;
- if (pref_hash_dicts->GetDictionaryWithoutPathExpansion(
- kHashOfHashesDict, &hash_of_hashes_dict)) {
- hash_of_hashes_dict->GetStringWithoutPathExpansion(hash_store_id_,
- &hash_of_hashes);
- }
- return hash_of_hashes;
-}
-
-void PrefServiceHashStoreContents::SetSuperMac(const std::string& super_mac) {
- PrefServiceMutableDictionary(kHashOfHashesDict, pref_service_)
- ->SetStringWithoutPathExpansion(hash_store_id_, super_mac);
-}

Powered by Google App Engine
This is Rietveld 408576698