| Index: chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
|
| diff --git a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc b/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
|
| index 103e3501af6b8ebd1cef9b5df02775de66667605..e121df367879be41fddc2c3ca17231a59e6f013c 100644
|
| --- a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
|
| +++ b/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc
|
| @@ -85,15 +85,23 @@ void PrefServiceHashStoreContents::Reset() {
|
|
|
| // Remove this store's entry in the kStoreVersionsDict.
|
| base::DictionaryValue* version_dict;
|
| - if (update->GetDictionary(kStoreVersionsDict, &version_dict))
|
| + if (update->GetDictionary(kStoreVersionsDict, &version_dict)) {
|
| version_dict->RemoveWithoutPathExpansion(hash_store_id_, NULL);
|
| + if (version_dict->empty())
|
| + update->RemovePath(kStoreVersionsDict, NULL);
|
| + }
|
|
|
| // Remove this store's entry in the kHashOfHashesDict.
|
| base::DictionaryValue* hash_of_hashes_dict;
|
| if (update->GetDictionaryWithoutPathExpansion(kHashOfHashesDict,
|
| &hash_of_hashes_dict)) {
|
| hash_of_hashes_dict->RemoveWithoutPathExpansion(hash_store_id_, NULL);
|
| + if (hash_of_hashes_dict->empty())
|
| + update->RemovePath(kHashOfHashesDict, NULL);
|
| }
|
| +
|
| + if (update->empty())
|
| + pref_service_->ClearPref(prefs::kProfilePreferenceHashes);
|
| }
|
|
|
| bool PrefServiceHashStoreContents::IsInitialized() const {
|
|
|