| 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));
|
| }
|
|
|