Chromium Code Reviews| Index: chrome/browser/prefs/pref_hash_store_impl.cc |
| diff --git a/chrome/browser/prefs/pref_hash_store_impl.cc b/chrome/browser/prefs/pref_hash_store_impl.cc |
| index 3702bb814c2c9269bf9a50eebf33f5ccb7f11250..270c6d0fa93c7342a80cfd6b2979e3c805f544c2 100644 |
| --- a/chrome/browser/prefs/pref_hash_store_impl.cc |
| +++ b/chrome/browser/prefs/pref_hash_store_impl.cc |
| @@ -60,11 +60,15 @@ class PrefHashStoreImpl::PrefHashStoreTransactionImpl |
| PrefHashStoreImpl::PrefHashStoreImpl(const std::string& seed, |
| const std::string& device_id, |
| - scoped_ptr<HashStoreContents> contents) |
| + scoped_ptr<HashStoreContents> contents, |
| + bool use_super_mac) |
| : pref_hash_calculator_(seed, device_id), |
| contents_(contents.Pass()), |
| initial_hashes_dictionary_trusted_( |
| - IsHashDictionaryTrusted(pref_hash_calculator_, *contents_)), |
| + use_super_mac |
| + ? IsHashDictionaryTrusted(pref_hash_calculator_, *contents_) |
| + : false), |
|
gab
2014/06/11 18:57:54
What do you think of making the default "true" her
gab
2014/06/11 21:54:32
Actually, never mind.
Setting this to false will
|
| + use_super_mac_(use_super_mac), |
| has_pending_write_(false) { |
| DCHECK(contents_); |
| UMA_HISTOGRAM_BOOLEAN("Settings.HashesDictionaryTrusted", |
| @@ -98,11 +102,13 @@ PrefHashStoreImpl::PrefHashStoreTransactionImpl:: |
| // Update the super MAC if and only if the hashes dictionary has been |
| // modified in this transaction. |
| if (has_changed_) { |
| - // Get the dictionary of hashes (or NULL if it doesn't exist). |
| - const base::DictionaryValue* hashes_dict = outer_->contents_->GetContents(); |
| - outer_->contents_->SetSuperMac(outer_->pref_hash_calculator_.Calculate( |
| - outer_->contents_->hash_store_id(), hashes_dict)); |
| - |
| + if (outer_->use_super_mac_) { |
| + // Get the dictionary of hashes (or NULL if it doesn't exist). |
| + const base::DictionaryValue* hashes_dict = |
| + outer_->contents_->GetContents(); |
| + outer_->contents_->SetSuperMac(outer_->pref_hash_calculator_.Calculate( |
| + outer_->contents_->hash_store_id(), hashes_dict)); |
| + } |
| outer_->has_pending_write_ = true; |
| } |
| @@ -150,7 +156,7 @@ void PrefHashStoreImpl::PrefHashStoreTransactionImpl::StoreHash( |
| } |
| bool PrefHashStoreImpl::PrefHashStoreTransactionImpl::StampSuperMac() { |
| - if (outer_->initial_hashes_dictionary_trusted_) |
| + if (!outer_->use_super_mac_ || outer_->initial_hashes_dictionary_trusted_) |
|
gab
2014/06/11 21:54:32
I don't think this is even required since line 104
erikwright (departed)
2014/06/13 13:25:24
This saves us thinking that we have altered the st
gab
2014/06/13 14:48:57
I see, good point :-)!
|
| return false; |
| has_changed_ = true; |
| return true; |