Remove year+ old migration support of "session.urls_to_restore_on_startup".

Remove code supporting the migration of "session.urls_to_restore_on_startup"
to "session.startup_urls", the corresponding constants, histograms and unit
tests. This migration was there to support pre M-32 profiles.

This is a preparatory step before componentization of //chrome/browser/prefs
as keeping the migration code in the component is not worth the complexity.

Mark histograms as obsolete as of 2015/12 due to the removal of the migration
code they were mesuring.

BUG=525079

Review URL: https://codereview.chromium.org/1302303002

Cr-Commit-Position: refs/heads/master@{#362981}
diff --git a/components/syncable_prefs/pref_model_associator.cc b/components/syncable_prefs/pref_model_associator.cc
index 9379a807..a78c973 100644
--- a/components/syncable_prefs/pref_model_associator.cc
+++ b/components/syncable_prefs/pref_model_associator.cc
@@ -75,19 +75,14 @@
 void PrefModelAssociator::InitPrefAndAssociate(
     const syncer::SyncData& sync_pref,
     const std::string& pref_name,
-    syncer::SyncChangeList* sync_changes,
-    SyncDataMap* migrated_preference_list) {
+    syncer::SyncChangeList* sync_changes) {
   const base::Value* user_pref_value = pref_service_->GetUserPrefValue(
       pref_name.c_str());
   VLOG(1) << "Associating preference " << pref_name;
 
   if (sync_pref.IsValid()) {
     const sync_pb::PreferenceSpecifics& preference = GetSpecifics(sync_pref);
-    std::string old_pref_name;
-    DCHECK(pref_name == preference.name() ||
-           (client_ &&
-            client_->IsMigratedPreference(pref_name, &old_pref_name) &&
-            preference.name() == old_pref_name));
+    DCHECK(pref_name == preference.name());
     base::JSONReader reader;
     scoped_ptr<base::Value> sync_value(reader.ReadToValue(preference.value()));
     if (!sync_value.get()) {
@@ -125,41 +120,10 @@
           return;
         }
 
-        std::string old_pref_name;
-        if (client_ &&
-            client_->IsMigratedPreference(pref_name, &old_pref_name)) {
-          // This preference has been migrated from an old version that must be
-          // kept in sync on older versions of Chrome.
-          if (preference.name() == old_pref_name) {
-            DCHECK(migrated_preference_list);
-            // If the name the syncer has is the old pre-migration value, then
-            // it's possible the new migrated preference name hasn't been synced
-            // yet. In that case the SyncChange should be an ACTION_ADD rather
-            // than an ACTION_UPDATE. Defer the decision of whether to sync with
-            // ACTION_ADD or ACTION_UPDATE until the migrated_preferences phase.
-            if (migrated_preference_list)
-              (*migrated_preference_list)[pref_name] = sync_data;
-          } else {
-            DCHECK_EQ(preference.name(), pref_name);
-            sync_changes->push_back(
-                syncer::SyncChange(FROM_HERE,
-                                   syncer::SyncChange::ACTION_UPDATE,
-                                   sync_data));
-          }
-
-          syncer::SyncData old_sync_data;
-          if (!CreatePrefSyncData(old_pref_name, *new_value, &old_sync_data)) {
-            LOG(ERROR) << "Failed to update preference.";
-            return;
-          }
-          if (migrated_preference_list)
-            (*migrated_preference_list)[old_pref_name] = old_sync_data;
-        } else {
-          sync_changes->push_back(
-            syncer::SyncChange(FROM_HERE,
-                               syncer::SyncChange::ACTION_UPDATE,
-                               sync_data));
-        }
+        sync_changes->push_back(
+          syncer::SyncChange(FROM_HERE,
+                             syncer::SyncChange::ACTION_UPDATE,
+                             sync_data));
       }
     } else if (!sync_value->IsType(base::Value::TYPE_NULL)) {
       // Only a server value exists. Just set the local user value.
@@ -207,11 +171,6 @@
   syncer::SyncChangeList new_changes;
   std::set<std::string> remaining_preferences = registered_preferences_;
 
-  // Maintains a list of old migrated preference names that we wish to sync.
-  // Keep track of these in a list such that when the preference iteration
-  // loops below are complete we can go back and determine whether
-  SyncDataMap migrated_preference_list;
-
   // Go through and check for all preferences we care about that sync already
   // knows about.
   for (syncer::SyncDataList::const_iterator sync_iter =
@@ -224,27 +183,16 @@
     std::string sync_pref_name = preference.name();
 
     if (remaining_preferences.count(sync_pref_name) == 0) {
-      std::string new_pref_name;
-      if (client_ &&
-          client_->IsOldMigratedPreference(sync_pref_name, &new_pref_name)) {
-        // This old pref name is not syncable locally anymore but we accept
-        // changes from other Chrome installs of previous versions and migrate
-        // them to the new name. Note that we will be merging any differences
-        // between the new and old values and sync'ing them back.
-        sync_pref_name = new_pref_name;
-      } else {
-        // We're not syncing this preference locally, ignore the sync data.
-        // TODO(zea): Eventually we want to be able to have the syncable service
-        // reconstruct all sync data for its datatype (therefore having
-        // GetAllSyncData be a complete representation). We should store this
-        // data somewhere, even if we don't use it.
-        continue;
-      }
-    } else {
-      remaining_preferences.erase(sync_pref_name);
+      // We're not syncing this preference locally, ignore the sync data.
+      // TODO(zea): Eventually we want to be able to have the syncable service
+      // reconstruct all sync data for its datatype (therefore having
+      // GetAllSyncData be a complete representation). We should store this
+      // data somewhere, even if we don't use it.
+      continue;
     }
-    InitPrefAndAssociate(*sync_iter, sync_pref_name, &new_changes,
-                         &migrated_preference_list);
+
+    remaining_preferences.erase(sync_pref_name);
+    InitPrefAndAssociate(*sync_iter, sync_pref_name, &new_changes);
   }
 
   // Go through and build sync data for any remaining preferences.
@@ -252,22 +200,7 @@
           remaining_preferences.begin();
        pref_name_iter != remaining_preferences.end();
        ++pref_name_iter) {
-    InitPrefAndAssociate(syncer::SyncData(), *pref_name_iter, &new_changes,
-                         &migrated_preference_list);
-  }
-
-  // Now go over any migrated preference names and build sync data for them too.
-  for (SyncDataMap::const_iterator migrated_pref_iter =
-          migrated_preference_list.begin();
-       migrated_pref_iter != migrated_preference_list.end();
-       ++migrated_pref_iter) {
-    syncer::SyncChange::SyncChangeType change_type =
-        (synced_preferences_.count(migrated_pref_iter->first) == 0) ?
-            syncer::SyncChange::ACTION_ADD :
-            syncer::SyncChange::ACTION_UPDATE;
-    new_changes.push_back(
-        syncer::SyncChange(FROM_HERE, change_type, migrated_pref_iter->second));
-    synced_preferences_.insert(migrated_pref_iter->first);
+    InitPrefAndAssociate(syncer::SyncData(), *pref_name_iter, &new_changes);
   }
 
   // Push updates to sync.
@@ -297,7 +230,6 @@
   // to merge for all migrated values.
   if (client_) {
     std::string new_pref_name;
-    DCHECK(!client_->IsOldMigratedPreference(name, &new_pref_name));
     if (client_->IsMergeableListPreference(name))
       return make_scoped_ptr(MergeListValues(local_value, server_value));
     if (client_->IsMergeableDictionaryPreference(name))
@@ -446,12 +378,6 @@
     // Windows client, the Windows client does not support
     // kConfirmToQuitEnabled. Ignore updates from these preferences.
     std::string pref_name = pref_specifics.name();
-    std::string new_pref_name;
-    // We migrated this preference name, so do as if the name had not changed.
-    if (client_ && client_->IsOldMigratedPreference(name, &new_pref_name)) {
-      pref_name = new_pref_name;
-    }
-
     if (!IsPrefRegistered(pref_name.c_str()))
       continue;
 
@@ -573,7 +499,7 @@
     // Not in synced_preferences_ means no synced data. InitPrefAndAssociate(..)
     // will determine if we care about its data (e.g. if it has a default value
     // and hasn't been changed yet we don't) and take care syncing any new data.
-    InitPrefAndAssociate(syncer::SyncData(), name, &changes, NULL);
+    InitPrefAndAssociate(syncer::SyncData(), name, &changes);
   } else {
     // We are already syncing this preference, just update it's sync node.
     syncer::SyncData sync_data;
@@ -585,24 +511,6 @@
         syncer::SyncChange(FROM_HERE,
                            syncer::SyncChange::ACTION_UPDATE,
                            sync_data));
-    // This preference has been migrated from an old version that must be kept
-    // in sync on older versions of Chrome.
-    std::string old_pref_name;
-    if (client_ && client_->IsMigratedPreference(name, &old_pref_name)) {
-      if (!CreatePrefSyncData(old_pref_name,
-                              *preference->GetValue(),
-                              &sync_data)) {
-        LOG(ERROR) << "Failed to update preference.";
-        return;
-      }
-
-      syncer::SyncChange::SyncChangeType change_type =
-          (synced_preferences_.count(old_pref_name) == 0) ?
-              syncer::SyncChange::ACTION_ADD :
-              syncer::SyncChange::ACTION_UPDATE;
-      changes.push_back(
-          syncer::SyncChange(FROM_HERE, change_type, sync_data));
-    }
   }
 
   syncer::SyncError error =