Chromium Code Reviews| Index: chrome/browser/ui/browser_ui_prefs.cc |
| diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc |
| index 68215e479040a57a669fa2aa32a73b8d65eb87a7..f188731707123faaacb5e4f2a2141804d2c54240 100644 |
| --- a/chrome/browser/ui/browser_ui_prefs.cc |
| +++ b/chrome/browser/ui/browser_ui_prefs.cc |
| @@ -6,6 +6,8 @@ |
| #include "base/prefs/pref_registry_simple.h" |
| #include "base/prefs/pref_service.h" |
| +#include "base/prefs/scoped_user_pref_update.h" |
| +#include "base/strings/string_util.h" |
| #include "chrome/browser/first_run/first_run.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/common/pref_names.h" |
| @@ -14,6 +16,36 @@ |
| namespace chrome { |
| +void MigrateBrowserUIUserPrefs(PrefService* prefs) { |
| + scoped_ptr<base::DictionaryValue> browser_dict = |
| + prefs->GetBrowserDictionary(); |
|
gab
2014/09/05 00:53:10
I'm torn here, you could do this without requiring
dgrogan
2014/09/06 00:47:06
I moved the migration to work off a PrefStoreObser
|
| + if (!browser_dict) |
| + return; |
| + |
| + DictionaryPrefUpdate update(prefs, prefs::kAppWindowPlacement); |
| + const std::string search_for = |
| + std::string(prefs::kBrowserWindowPlacement) + "_"; |
| + for (base::DictionaryValue::Iterator it(*browser_dict); !it.IsAtEnd(); |
| + it.Advance()) { |
| + std::string full_key("browser." + it.key()); |
| + if (StartsWithASCII(full_key, search_for, true /* case_sensitive */)) { |
| + if (full_key == prefs::kBrowserWindowPlacementPopup) |
| + continue; |
| + std::string new_key(full_key); |
| + ReplaceFirstSubstringAfterOffset(&new_key, 0, search_for, ""); |
|
gab
2014/09/05 00:53:10
|new_key| (which is equal to |full_key| at this po
dgrogan
2014/09/06 00:47:06
Done.
|
| + update->Set(new_key, it.value().DeepCopy()); |
| + |
| + user_prefs::PrefRegistrySyncable* registry = |
| + static_cast<user_prefs::PrefRegistrySyncable*>( |
| + prefs->DeprecatedGetPrefRegistry()); |
| + registry->RegisterDictionaryPref( |
| + full_key.c_str(), |
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| + prefs->ClearPref(full_key.c_str()); |
| + } |
| + } |
| +} |
| + |
| void RegisterBrowserPrefs(PrefRegistrySimple* registry) { |
| registry->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); |
| registry->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); |
| @@ -125,6 +157,9 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { |
| registry->RegisterDictionaryPref( |
| prefs::kBrowserWindowPlacementPopup, |
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| + registry->RegisterDictionaryPref( |
| + prefs::kAppWindowPlacement, |
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| registry->RegisterBooleanPref( |
| prefs::kImportBookmarks, |
| true, |
| @@ -184,24 +219,4 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { |
| #endif |
| } |
| -void RegisterAppPrefs(const std::string& app_name, Profile* profile) { |
| - // We need to register the window position pref. |
| - // |
| - // TODO(mnissler): Use a separate pref name pointing to a single |
| - // dictionary instead. Also tracked as http://crbug.com/167256 |
| - std::string window_pref(prefs::kBrowserWindowPlacement); |
| - window_pref.append("_"); |
| - window_pref.append(app_name); |
| - PrefService* prefs = profile->GetPrefs(); |
| - if (!prefs->FindPreference(window_pref.c_str())) { |
| - // TODO(joi): Do all registration up front. |
| - scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
| - static_cast<user_prefs::PrefRegistrySyncable*>( |
| - prefs->DeprecatedGetPrefRegistry())); |
| - registry->RegisterDictionaryPref( |
| - window_pref.c_str(), user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| - } |
| -} |
| - |
| - |
| } // namespace chrome |