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 382c924bfea130bf7ea6b07235ef2beb53254a7f..0d4701a6e8a3e06a469a6d016b24fe0156618fb0 100644 |
--- a/chrome/browser/prefs/tracked/tracked_preferences_migration.cc |
+++ b/chrome/browser/prefs/tracked/tracked_preferences_migration.cc |
@@ -192,7 +192,12 @@ void MigratePrefsFromOldToNewStore(const std::set<std::string>& pref_names, |
new_hash_store_transaction->ImportHash(pref_name, old_hash); |
*new_store_altered = true; |
} else if (!destination_hash_missing) { |
- new_hash_store_transaction->ClearHash(pref_name); |
+ // Do not allow values to be migrated without MACs if the destination |
+ // already has a MAC (http://crbug.com/414554). Remove the migrated |
+ // value in order to provide the same no-op behaviour as if the pref was |
+ // added to the wrong file when there was already a value for |
+ // |pref_name| in |new_store|. |
+ new_store->Remove(pref_name, NULL); |
*new_store_altered = true; |
} |
} |