Index: chrome/browser/sync/profile_sync_service.cc |
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc |
index 2e44ff224d040e9bb1ea392ef5ec2320eeaf56fd..b04142d62ac3eb3044fa4e80a98f3073cdea03cd 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -433,11 +433,7 @@ void ProfileSyncService::CreateBackend() { |
} |
bool ProfileSyncService::IsEncryptedDatatypeEnabled() const { |
- // Currently on passwords are an encrypted datatype, so |
- // we check to see if it is enabled. |
- syncable::ModelTypeSet types; |
- GetPreferredDataTypes(&types); |
- return types.count(syncable::PASSWORDS) != 0; |
+ return encrypted_types_.size() > 0; |
} |
void ProfileSyncService::StartUp() { |
@@ -751,6 +747,14 @@ void ProfileSyncService::OnPassphraseAccepted() { |
wizard_.Step(SyncSetupWizard::DONE); |
} |
+void ProfileSyncService::OnEncryptionComplete( |
+ const syncable::ModelTypeSet& encrypted_types) { |
+ if (encrypted_types_ != encrypted_types) { |
+ encrypted_types_ = encrypted_types; |
+ NotifyObservers(); |
+ } |
+} |
+ |
void ProfileSyncService::ShowLoginDialog(gfx::NativeWindow parent_window) { |
if (!cros_user_.empty()) { |
// For ChromeOS, any login UI needs to be handled by the settings page. |
@@ -1170,6 +1174,16 @@ void ProfileSyncService::SetPassphrase(const std::string& passphrase, |
tried_setting_explicit_passphrase_ = true; |
} |
+void ProfileSyncService::EncryptDataTypes( |
+ const syncable::ModelTypeSet& encrypted_types) { |
+ backend_->EncryptDataTypes(encrypted_types); |
+} |
+ |
+void ProfileSyncService::GetEncryptedDataTypes( |
+ syncable::ModelTypeSet* encrypted_types) const { |
+ *encrypted_types = encrypted_types_; |
+} |
+ |
void ProfileSyncService::Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |