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

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

Issue 257003007: Introduce a new framework for back-and-forth tracked/protected preferences migration. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 e93cb8358117ec4bcf5c551f200ec899f4ef1a90..ee9a37032e91bf09fc86d879ae43056d3a1dbe47 100644
--- a/chrome/browser/prefs/profile_pref_store_manager.cc
+++ b/chrome/browser/prefs/profile_pref_store_manager.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/prefs/pref_hash_store_impl.h"
#include "chrome/browser/prefs/tracked/pref_service_hash_store_contents.h"
#include "chrome/browser/prefs/tracked/segregated_pref_store.h"
+#include "chrome/browser/prefs/tracked/tracked_preferences_migration.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/pref_names.h"
#include "components/user_prefs/pref_registry_syncable.h"
@@ -283,6 +284,7 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
std::vector<PrefHashFilter::TrackedPreferenceMetadata>
protected_configuration;
std::set<std::string> protected_pref_names;
+ std::set<std::string> unprotected_pref_names;
for (std::vector<PrefHashFilter::TrackedPreferenceMetadata>::const_iterator
it = tracking_configuration_.begin();
it != tracking_configuration_.end();
@@ -292,6 +294,7 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
protected_pref_names.insert(it->name);
} else {
unprotected_configuration.push_back(*it);
+ unprotected_pref_names.insert(it->name);
}
}
@@ -304,29 +307,22 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
protected_configuration,
reporting_ids_count_));
- scoped_refptr<PersistentPrefStore> unprotected_pref_store(
+ scoped_refptr<JsonPrefStore> unprotected_pref_store(
new JsonPrefStore(GetPrefFilePathFromProfilePath(profile_path_),
io_task_runner,
unprotected_pref_hash_filter.Pass()));
- scoped_refptr<PersistentPrefStore> protected_pref_store(new JsonPrefStore(
+ scoped_refptr<JsonPrefStore> protected_pref_store(new JsonPrefStore(
profile_path_.Append(chrome::kProtectedPreferencesFilename),
io_task_runner,
protected_pref_hash_filter.Pass()));
- // The on_initialized callback is used to migrate newly protected values from
- // the main Preferences store to the Protected Preferences store. It is also
- // responsible for the initial migration to a two-store model.
- return new SegregatedPrefStore(
- unprotected_pref_store,
- protected_pref_store,
- protected_pref_names,
- base::Bind(&PrefHashFilter::MigrateValues,
- base::Owned(new PrefHashFilter(
- CopyPrefHashStore(),
- protected_configuration,
- reporting_ids_count_)),
- unprotected_pref_store,
- protected_pref_store));
+ SetupTrackedPrefererencesMigration(unprotected_pref_names,
+ protected_pref_names,
+ unprotected_pref_store,
+ protected_pref_store);
+
+ return new SegregatedPrefStore(unprotected_pref_store, protected_pref_store,
+ protected_pref_names);
}
void ProfilePrefStoreManager::UpdateProfileHashStoreIfRequired(
@@ -410,15 +406,3 @@ scoped_ptr<PrefHashStoreImpl> ProfilePrefStoreManager::GetPrefHashStoreImpl() {
scoped_ptr<HashStoreContents>(new PrefServiceHashStoreContents(
profile_path_.AsUTF8Unsafe(), local_state_))));
}
-
-scoped_ptr<PrefHashStore> ProfilePrefStoreManager::CopyPrefHashStore() {
- DCHECK(kPlatformSupportsPreferenceTracking);
-
- PrefServiceHashStoreContents real_contents(profile_path_.AsUTF8Unsafe(),
- local_state_);
- return scoped_ptr<PrefHashStore>(new PrefHashStoreImpl(
- seed_,
- device_id_,
- scoped_ptr<HashStoreContents>(
- new DictionaryHashStoreContents(real_contents))));
-}

Powered by Google App Engine
This is Rietveld 408576698