Chromium Code Reviews| Index: chrome/browser/sync/glue/sync_backend_host.cc |
| diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc |
| index 20b1afc1766036c8a9234a740f3c64dc853d7f11..cd8ba78e0476754fbe1384dfac8a7d7921ec1028 100644 |
| --- a/chrome/browser/sync/glue/sync_backend_host.cc |
| +++ b/chrome/browser/sync/glue/sync_backend_host.cc |
| @@ -305,20 +305,6 @@ void SyncBackendHost::EnableEncryptEverything() { |
| &SyncBackendHost::Core::DoEnableEncryptEverything)); |
| } |
| -bool SyncBackendHost::EncryptEverythingEnabled() const { |
| - if (initialization_state_ <= NOT_INITIALIZED) { |
| - NOTREACHED() << "Cannot check encryption status without first " |
| - << "initializing backend."; |
| - return false; |
| - } |
| - return core_->sync_manager()->EncryptEverythingEnabled(); |
| -} |
| - |
| -syncable::ModelTypeSet SyncBackendHost::GetEncryptedDataTypes() const { |
| - DCHECK_GT(initialization_state_, NOT_INITIALIZED); |
| - return core_->sync_manager()->GetEncryptedDataTypes(); |
| -} |
| - |
| void SyncBackendHost::ActivateDataType( |
| syncable::ModelType type, ModelSafeGroup group, |
| ChangeProcessor* change_processor) { |
| @@ -503,15 +489,27 @@ void SyncBackendHost::Core::OnClearServerDataSucceeded() { |
| &Core::HandleClearServerDataSucceededOnFrontendLoop)); |
| } |
| -void SyncBackendHost::Core::OnEncryptionComplete( |
| - const syncable::ModelTypeSet& encrypted_types) { |
| +void SyncBackendHost::Core::OnEncryptedTypesChanged( |
| + const syncable::ModelTypeSet& encrypted_types, |
| + bool encrypt_everything) { |
| if (!sync_loop_) |
| return; |
| DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| + // NOTE: We're in a transaction. |
| host_->frontend_loop_->PostTask( |
| FROM_HERE, |
| - NewRunnableMethod(this, &Core::NotifyEncryptionComplete, |
| - encrypted_types)); |
| + base::Bind(&Core::NotifyEncryptedTypesChanged, this, |
| + encrypted_types, encrypt_everything)); |
| +} |
| + |
| +void SyncBackendHost::Core::OnEncryptionComplete() { |
| + if (!sync_loop_) |
| + return; |
| + DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| + // NOTE: We're in a transaction. |
| + host_->frontend_loop_->PostTask( |
| + FROM_HERE, |
| + base::Bind(&Core::NotifyEncryptionComplete, this)); |
| } |
| void SyncBackendHost::Core::OnActionableError( |
| @@ -794,12 +792,21 @@ void SyncBackendHost::Core::NotifyUpdatedToken(const std::string& token) { |
| content::Details<const TokenAvailableDetails>(&details)); |
| } |
| -void SyncBackendHost::Core::NotifyEncryptionComplete( |
| - const syncable::ModelTypeSet& encrypted_types) { |
| +void SyncBackendHost::Core::NotifyEncryptedTypesChanged( |
| + const syncable::ModelTypeSet& encrypted_types, |
| + bool encrypt_everything) { |
| + if (!host_) |
| + return; |
| + DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_); |
| + host_->frontend_->OnEncryptedTypesChanged( |
| + encrypted_types, encrypt_everything); |
| +} |
| + |
| +void SyncBackendHost::Core::NotifyEncryptionComplete() { |
| if (!host_) |
| return; |
| DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_); |
| - host_->frontend_->OnEncryptionComplete(encrypted_types); |
| + host_->frontend_->OnEncryptionComplete(); |
| } |
| void SyncBackendHost::Core::HandleSyncCycleCompletedOnFrontendLoop( |
| @@ -920,6 +927,7 @@ void SyncBackendHost::HandleInitializationCompletedOnFrontendLoop( |
| break; |
| case DOWNLOADING_NIGORI: |
| initialization_state_ = REFRESHING_ENCRYPTION; |
| + // Triggers OnEncryptedTypesChanged() if necessary. |
|
Nicolas Zea
2011/10/24 19:18:17
and OnEncryptionComplete
akalin
2011/10/24 19:34:13
Done.
|
| RefreshEncryption( |
| base::Bind( |
| &SyncBackendHost::Core:: |