Revamp the MigrateBrowserPrefs and MigrateUserPrefs code.
Restructure it so it is organized by date-added, and delete all migrations that are sufficiently old.
BUG=69995,165672
Review URL: https://codereview.chromium.org/944433002
Cr-Commit-Position: refs/heads/master@{#318780}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index a913c1c9..2480526 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -162,7 +162,6 @@
#include "chrome/browser/chromeos/extensions/echo_private_api.h"
#include "chrome/browser/chromeos/file_system_provider/registry.h"
#include "chrome/browser/chromeos/first_run/first_run.h"
-#include "chrome/browser/chromeos/login/default_pinned_apps_field_trial.h"
#include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
#include "chrome/browser/chromeos/login/session/user_session_manager.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
@@ -223,19 +222,6 @@
namespace {
-enum MigratedPreferences {
- NO_PREFS = 0,
- DNS_PREFS = 1 << 0,
- WINDOWS_PREFS = 1 << 1,
-};
-
-// A previous feature (see
-// chrome/browser/protector/protected_prefs_watcher.cc in source
-// control history) used this string as a prefix for various prefs it
-// registered. We keep it here for now to clear out those old prefs in
-// MigrateUserPrefs.
-const char kBackupPref[] = "backup";
-
#if !defined(OS_ANDROID)
// The AutomaticProfileResetter service used this preference to save that the
// profile reset prompt had already been shown, however, the preference has been
@@ -250,8 +236,6 @@
namespace chrome {
void RegisterLocalState(PrefRegistrySimple* registry) {
- // Prefs in Local State.
- registry->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0);
// Please keep this list alphabetized.
AppListService::RegisterPrefs(registry);
@@ -328,7 +312,6 @@
chromeos::DataPromoNotification::RegisterPrefs(registry);
chromeos::DeviceOAuth2TokenService::RegisterPrefs(registry);
chromeos::device_settings_cache::RegisterPrefs(registry);
- chromeos::default_pinned_apps_field_trial::RegisterPrefs(registry);
chromeos::EnableDebuggingScreenHandler::RegisterPrefs(registry);
chromeos::language_prefs::RegisterPrefs(registry);
chromeos::KioskAppManager::RegisterPrefs(registry);
@@ -528,13 +511,6 @@
#if defined(USE_ASH)
ash::RegisterChromeLauncherUserPrefs(registry);
#endif
-
- // Preferences registered only for migration (clearing or moving to a new key)
- // go here.
- registry->RegisterDictionaryPref(
- kBackupPref,
- new base::DictionaryValue(),
- user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
}
void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -557,82 +533,47 @@
}
#endif
-void MigrateUserPrefs(Profile* profile) {
- PrefService* prefs = profile->GetPrefs();
-
- // Cleanup prefs from now-removed protector feature.
- prefs->ClearPref(kBackupPref);
+// This method should be periodically pruned of year+ old migrations.
+void MigrateObsoleteBrowserPrefs(Profile* profile, PrefService* local_state) {
+#if defined(TOOLKIT_VIEWS)
+ // Added 05/2014.
+ MigrateBrowserTabStripPrefs(local_state);
+#endif
#if !defined(OS_ANDROID)
+ // Added 08/2014.
+ local_state->ClearPref(kLegacyProfileResetPromptMemento);
+#endif
+}
+
+// This method should be periodically pruned of year+ old migrations.
+void MigrateObsoleteProfilePrefs(Profile* profile) {
+ PrefService* profile_prefs = profile->GetPrefs();
+
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+ // Added 06/2014.
+ autofill::AutofillManager::MigrateUserPrefs(profile_prefs);
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
+
+ // Added 07/2014.
+ translate::TranslatePrefs::MigrateUserPrefs(profile_prefs,
+ prefs::kAcceptLanguages);
+
+#if !defined(OS_ANDROID)
+ // Added 08/2014.
// Migrate kNetworkPredictionEnabled to kNetworkPredictionOptions when not on
// Android. On Android, platform-specific code performs preference migration.
// TODO(bnc): https://crbug.com/401970 Remove migration code one year after
// M38.
- chrome_browser_net::MigrateNetworkPredictionUserPrefs(prefs);
+ chrome_browser_net::MigrateNetworkPredictionUserPrefs(profile_prefs);
#endif
- PromoResourceService::MigrateUserPrefs(prefs);
- translate::TranslatePrefs::MigrateUserPrefs(prefs, prefs::kAcceptLanguages);
-
-#if defined(OS_MACOSX) && !defined(OS_IOS)
- autofill::AutofillManager::MigrateUserPrefs(prefs);
-#endif // defined(OS_MACOSX) && !defined(OS_IOS)
-
#if defined(OS_CHROMEOS) && defined(ENABLE_APP_LIST)
+ // Added 02/2015.
MigrateGoogleNowPrefs(profile);
#endif
}
-void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) {
- // Copy pref values which have been migrated to user_prefs from local_state,
- // or remove them from local_state outright, if copying is not required.
- int current_version =
- local_state->GetInteger(prefs::kMultipleProfilePrefMigration);
- PrefRegistrySimple* registry = static_cast<PrefRegistrySimple*>(
- local_state->DeprecatedGetPrefRegistry());
-
- if (!(current_version & DNS_PREFS)) {
- registry->RegisterListPref(prefs::kDnsStartupPrefetchList);
- local_state->ClearPref(prefs::kDnsStartupPrefetchList);
-
- registry->RegisterListPref(prefs::kDnsHostReferralList);
- local_state->ClearPref(prefs::kDnsHostReferralList);
-
- current_version |= DNS_PREFS;
- local_state->SetInteger(prefs::kMultipleProfilePrefMigration,
- current_version);
- }
-
- PrefService* user_prefs = profile->GetPrefs();
- if (!(current_version & WINDOWS_PREFS)) {
- registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
- if (local_state->HasPrefPath(prefs::kBrowserWindowPlacement)) {
- const PrefService::Preference* pref =
- local_state->FindPreference(prefs::kBrowserWindowPlacement);
- DCHECK(pref);
- user_prefs->Set(prefs::kBrowserWindowPlacement,
- *(pref->GetValue()));
- }
- local_state->ClearPref(prefs::kBrowserWindowPlacement);
-
- current_version |= WINDOWS_PREFS;
- local_state->SetInteger(prefs::kMultipleProfilePrefMigration,
- current_version);
- }
-
-#if !defined(OS_ANDROID)
- local_state->ClearPref(kLegacyProfileResetPromptMemento);
-#endif
-
-#if defined(OS_CHROMEOS)
- chromeos::default_pinned_apps_field_trial::MigratePrefs(local_state);
-#endif
-
-#if defined(TOOLKIT_VIEWS)
- MigrateBrowserTabStripPrefs(local_state);
-#endif
-}
-
// As part of the migration from per-profile to per-partition HostZoomMaps,
// we need to detect if an existing per-profile set of preferences exist, and
// if so convert them to be per-partition. We migrate any per-profile zoom