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

Unified Diff: chrome/browser/prefs/profile_pref_store_manager.cc

Issue 324493002: Move preference MACs to the protected preference stores. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: New approach. Created 6 years, 6 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/profile_pref_store_manager.cc
diff --git a/chrome/browser/prefs/profile_pref_store_manager.cc b/chrome/browser/prefs/profile_pref_store_manager.cc
index 2800ec0f696694680c3aaf91b59b06a487124c61..db77936b6bfc8940bf837df34b86f22b6bd6662d 100644
--- a/chrome/browser/prefs/profile_pref_store_manager.cc
+++ b/chrome/browser/prefs/profile_pref_store_manager.cc
@@ -64,8 +64,6 @@ class DictionaryHashStoreContents : public HashStoreContents {
super_mac_ = super_mac;
}
- virtual void CommitPendingWrite() OVERRIDE {}
-
private:
class SimpleMutableDictionary
: public HashStoreContents::MutableDictionary {
@@ -211,12 +209,12 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
}
scoped_ptr<PrefHashFilter> unprotected_pref_hash_filter(
- new PrefHashFilter(GetPrefHashStoreImpl().PassAs<PrefHashStore>(),
+ new PrefHashFilter(GetPrefHashStoreImpl(false).PassAs<PrefHashStore>(),
unprotected_configuration,
validation_delegate,
reporting_ids_count_));
scoped_ptr<PrefHashFilter> protected_pref_hash_filter(
- new PrefHashFilter(GetPrefHashStoreImpl().PassAs<PrefHashStore>(),
+ new PrefHashFilter(GetPrefHashStoreImpl(true).PassAs<PrefHashStore>(),
protected_configuration,
validation_delegate,
reporting_ids_count_));
@@ -246,6 +244,10 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
unprotected_pref_store->AsWeakPtr()),
base::Bind(&JsonPrefStore::RegisterOnNextSuccessfulWriteCallback,
protected_pref_store->AsWeakPtr()),
+ GetPrefHashStoreImpl(false).PassAs<PrefHashStore>(),
+ GetPrefHashStoreImpl(true).PassAs<PrefHashStore>(),
+ scoped_ptr<HashStoreContents>(new PrefServiceHashStoreContents(
+ profile_path_.AsUTF8Unsafe(), local_state_)),
raw_unprotected_pref_hash_filter,
raw_protected_pref_hash_filter);
@@ -260,6 +262,18 @@ bool ProfilePrefStoreManager::InitializePrefsFromMasterPrefs(
if (!base::CreateDirectory(profile_path_))
return false;
+ const base::DictionaryValue* to_serialize = &master_prefs;
+ scoped_ptr<base::DictionaryValue> copy;
+
+ if (kPlatformSupportsPreferenceTracking) {
+ copy.reset(master_prefs.DeepCopy());
+ to_serialize = copy.get();
+ PrefHashFilter(GetPrefHashStoreImpl(false).PassAs<PrefHashStore>(),
+ tracking_configuration_,
+ NULL,
+ reporting_ids_count_).Initialize(copy.get());
+ }
+
// This will write out to a single combined file which will be immediately
// migrated to two files on load.
JSONFileValueSerializer serializer(
@@ -270,44 +284,18 @@ bool ProfilePrefStoreManager::InitializePrefsFromMasterPrefs(
// complete before Chrome can start (as master preferences seed the Local
// State and Preferences files). This won't trip ThreadIORestrictions as they
// won't have kicked in yet on the main thread.
- bool success = serializer.Serialize(master_prefs);
-
- if (success && kPlatformSupportsPreferenceTracking) {
- scoped_refptr<const PrefStore> pref_store(
- new DictionaryPrefStore(&master_prefs));
- PrefHashFilter(GetPrefHashStoreImpl().PassAs<PrefHashStore>(),
- tracking_configuration_,
- NULL,
- reporting_ids_count_).Initialize(*pref_store);
- }
+ bool success = serializer.Serialize(*to_serialize);
UMA_HISTOGRAM_BOOLEAN("Settings.InitializedFromMasterPrefs", success);
return success;
}
-PersistentPrefStore*
-ProfilePrefStoreManager::CreateDeprecatedCombinedProfilePrefStore(
- const scoped_refptr<base::SequencedTaskRunner>& io_task_runner) {
- scoped_ptr<PrefFilter> pref_filter;
- if (kPlatformSupportsPreferenceTracking) {
- pref_filter.reset(
- new PrefHashFilter(GetPrefHashStoreImpl().PassAs<PrefHashStore>(),
- tracking_configuration_,
- NULL,
- reporting_ids_count_));
- }
- return new JsonPrefStore(GetPrefFilePathFromProfilePath(profile_path_),
- io_task_runner,
- pref_filter.Pass());
-}
-
-scoped_ptr<PrefHashStoreImpl> ProfilePrefStoreManager::GetPrefHashStoreImpl() {
+scoped_ptr<PrefHashStoreImpl> ProfilePrefStoreManager::GetPrefHashStoreImpl(
+ bool use_super_mac) {
DCHECK(kPlatformSupportsPreferenceTracking);
return make_scoped_ptr(new PrefHashStoreImpl(
seed_,
device_id_,
- scoped_ptr<HashStoreContents>(new PrefServiceHashStoreContents(
- profile_path_.AsUTF8Unsafe(), local_state_)),
- true));
+ use_super_mac));
}

Powered by Google App Engine
This is Rietveld 408576698