| Index: sync/internal_api/sync_encryption_handler_impl.cc
|
| diff --git a/sync/internal_api/sync_encryption_handler_impl.cc b/sync/internal_api/sync_encryption_handler_impl.cc
|
| index c632ba57a595351199c4a2954f5b7a8d969e6941..cce34b19265d914a91a38f044bdc87bad4862aea 100644
|
| --- a/sync/internal_api/sync_encryption_handler_impl.cc
|
| +++ b/sync/internal_api/sync_encryption_handler_impl.cc
|
| @@ -369,14 +369,14 @@ void SyncEncryptionHandlerImpl::EnableEncryptEverything() {
|
| ModelTypeSet* encrypted_types =
|
| &UnlockVaultMutable(trans.GetWrappedTrans())->encrypted_types;
|
| if (encrypt_everything_) {
|
| - DCHECK(encrypted_types->Equals(ModelTypeSet::All()));
|
| + DCHECK(encrypted_types->Equals(UserTypes()));
|
| return;
|
| }
|
| DVLOG(1) << "Enabling encrypt everything.";
|
| encrypt_everything_ = true;
|
| // Change |encrypted_types_| directly to avoid sending more than one
|
| // notification.
|
| - *encrypted_types = ModelTypeSet::All();
|
| + *encrypted_types = UserTypes();
|
| FOR_EACH_OBSERVER(
|
| Observer, observers_,
|
| OnEncryptedTypesChanged(*encrypted_types, encrypt_everything_));
|
| @@ -450,7 +450,7 @@ void SyncEncryptionHandlerImpl::ReEncryptEverything(
|
| for (ModelTypeSet::Iterator iter =
|
| UnlockVault(trans->GetWrappedTrans()).encrypted_types.First();
|
| iter.Good(); iter.Inc()) {
|
| - if (iter.Get() == PASSWORDS || iter.Get() == NIGORI)
|
| + if (iter.Get() == PASSWORDS || IsControlType(iter.Get()))
|
| continue; // These types handle encryption differently.
|
|
|
| ReadNode type_root(trans);
|
| @@ -635,13 +635,13 @@ bool SyncEncryptionHandlerImpl::UpdateEncryptedTypesFromNigori(
|
| if (nigori.encrypt_everything()) {
|
| if (!encrypt_everything_) {
|
| encrypt_everything_ = true;
|
| - *encrypted_types = ModelTypeSet::All();
|
| + *encrypted_types = UserTypes();
|
| DVLOG(1) << "Enabling encrypt everything via nigori node update";
|
| FOR_EACH_OBSERVER(
|
| Observer, observers_,
|
| OnEncryptedTypesChanged(*encrypted_types, encrypt_everything_));
|
| }
|
| - DCHECK(encrypted_types->Equals(ModelTypeSet::All()));
|
| + DCHECK(encrypted_types->Equals(UserTypes()));
|
| return true;
|
| }
|
|
|
| @@ -656,12 +656,12 @@ bool SyncEncryptionHandlerImpl::UpdateEncryptedTypesFromNigori(
|
| !Difference(nigori_encrypted_types, SensitiveTypes()).Empty()) {
|
| if (!encrypt_everything_) {
|
| encrypt_everything_ = true;
|
| - *encrypted_types = ModelTypeSet::All();
|
| + *encrypted_types = UserTypes();
|
| FOR_EACH_OBSERVER(
|
| Observer, observers_,
|
| OnEncryptedTypesChanged(*encrypted_types, encrypt_everything_));
|
| }
|
| - DCHECK(encrypted_types->Equals(ModelTypeSet::All()));
|
| + DCHECK(encrypted_types->Equals(UserTypes()));
|
| return false;
|
| }
|
|
|
| @@ -737,6 +737,10 @@ void SyncEncryptionHandlerImpl::MergeEncryptedTypes(
|
| ModelTypeSet new_encrypted_types,
|
| syncable::BaseTransaction* const trans) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| +
|
| + // Only UserTypes may be encrypted.
|
| + DCHECK(UserTypes().HasAll(new_encrypted_types));
|
| +
|
| ModelTypeSet* encrypted_types = &UnlockVaultMutable(trans)->encrypted_types;
|
| if (!encrypted_types->HasAll(new_encrypted_types)) {
|
| *encrypted_types = new_encrypted_types;
|
|
|