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

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

Issue 329173002: Make a JsonPrefStore readable while mid-interception. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/tracked/tracked_preferences_migration.cc
diff --git a/chrome/browser/prefs/tracked/tracked_preferences_migration.cc b/chrome/browser/prefs/tracked/tracked_preferences_migration.cc
index c358256f06b4f50ff9e88b6045c82634d2b41586..079903d669dfb35df9d0c22c5cf6f07be11a2daa 100644
--- a/chrome/browser/prefs/tracked/tracked_preferences_migration.cc
+++ b/chrome/browser/prefs/tracked/tracked_preferences_migration.cc
@@ -47,7 +47,7 @@ class TrackedPreferencesMigrator
PrefFilterID id,
const InterceptablePrefFilter::FinalizeFilterOnLoadCallback&
finalize_filter_on_load,
- scoped_ptr<base::DictionaryValue> prefs);
+ base::DictionaryValue* prefs);
// Proceeds with migration if both |unprotected_prefs_| and |protected_prefs_|
// have been set.
@@ -68,8 +68,8 @@ class TrackedPreferencesMigrator
InterceptablePrefFilter::FinalizeFilterOnLoadCallback
finalize_protected_filter_on_load_;
- scoped_ptr<base::DictionaryValue> unprotected_prefs_;
- scoped_ptr<base::DictionaryValue> protected_prefs_;
+ base::DictionaryValue* unprotected_prefs_;
+ base::DictionaryValue* protected_prefs_;
DISALLOW_COPY_AND_ASSIGN(TrackedPreferencesMigrator);
};
@@ -157,7 +157,9 @@ TrackedPreferencesMigrator::TrackedPreferencesMigrator(
register_on_successful_unprotected_store_write_callback_(
register_on_successful_unprotected_store_write_callback),
register_on_successful_protected_store_write_callback_(
- register_on_successful_protected_store_write_callback) {
+ register_on_successful_protected_store_write_callback),
+ unprotected_prefs_(NULL),
+ protected_prefs_(NULL) {
// The callbacks bound below will own this TrackedPreferencesMigrator by
// reference.
unprotected_pref_filter->InterceptNextFilterOnLoad(
@@ -176,15 +178,15 @@ void TrackedPreferencesMigrator::InterceptFilterOnLoad(
PrefFilterID id,
const InterceptablePrefFilter::FinalizeFilterOnLoadCallback&
finalize_filter_on_load,
- scoped_ptr<base::DictionaryValue> prefs) {
+ base::DictionaryValue* prefs) {
switch (id) {
case UNPROTECTED_PREF_FILTER:
finalize_unprotected_filter_on_load_ = finalize_filter_on_load;
- unprotected_prefs_ = prefs.Pass();
+ unprotected_prefs_ = prefs;
break;
case PROTECTED_PREF_FILTER:
finalize_protected_filter_on_load_ = finalize_filter_on_load;
- protected_prefs_ = prefs.Pass();
+ protected_prefs_ = prefs;
break;
}
@@ -199,23 +201,23 @@ void TrackedPreferencesMigrator::MigrateIfReady() {
bool protected_prefs_need_cleanup = false;
bool unprotected_prefs_altered = false;
MigratePrefsFromOldToNewStore(unprotected_pref_names_,
- protected_prefs_.get(),
- unprotected_prefs_.get(),
+ protected_prefs_,
+ unprotected_prefs_,
&protected_prefs_need_cleanup,
&unprotected_prefs_altered);
bool unprotected_prefs_need_cleanup = false;
bool protected_prefs_altered = false;
MigratePrefsFromOldToNewStore(protected_pref_names_,
- unprotected_prefs_.get(),
- protected_prefs_.get(),
+ unprotected_prefs_,
+ protected_prefs_,
&unprotected_prefs_need_cleanup,
&protected_prefs_altered);
- // Hand the processed prefs back to their respective filters.
- finalize_unprotected_filter_on_load_.Run(unprotected_prefs_.Pass(),
- unprotected_prefs_altered);
- finalize_protected_filter_on_load_.Run(protected_prefs_.Pass(),
- protected_prefs_altered);
+ // Allow preference loading to proceed.
+ unprotected_prefs_ = NULL;
+ protected_prefs_ = NULL;
+ finalize_unprotected_filter_on_load_.Run(unprotected_prefs_altered);
+ finalize_protected_filter_on_load_.Run(protected_prefs_altered);
if (unprotected_prefs_need_cleanup) {
// Schedule a cleanup of the |protected_pref_names_| from the unprotected

Powered by Google App Engine
This is Rietveld 408576698