Index: chrome/browser/sync/engine/syncapi.cc |
diff --git a/chrome/browser/sync/engine/syncapi.cc b/chrome/browser/sync/engine/syncapi.cc |
index df7e7f510900a85b4c8d31ed7466a1371f06793e..a4e4917eb166b912e2b4ceff4f4e517e6001a68b 100644 |
--- a/chrome/browser/sync/engine/syncapi.cc |
+++ b/chrome/browser/sync/engine/syncapi.cc |
@@ -1878,6 +1878,9 @@ bool SyncManager::SyncInternal::UpdateCryptographerFromNigori() { |
OnPassphraseRequired(sync_api::REASON_DECRYPTION)); |
} |
+ |
+ allstatus_.SetCryptographerReady(cryptographer->is_ready()); |
+ |
return cryptographer->is_ready(); |
} |
@@ -2120,6 +2123,8 @@ void SyncManager::SyncInternal::EncryptDataTypes( |
encrypted_types.begin(), encrypted_types.end(), |
std::inserter(newly_encrypted_types, |
newly_encrypted_types.begin())); |
+ allstatus_.SetEncryptEverything(newly_encrypted_types.size() > |
akalin
2011/08/03 19:10:02
Can we instead expose the list of encrypted types?
Nicolas Zea
2011/08/03 22:04:24
Done.
|
+ newly_encrypted_types.count(syncable::PASSWORDS)); |
if (newly_encrypted_types == current_encrypted_types) |
return; // Set of encrypted types did not change. |
syncable::FillNigoriEncryptedTypes(newly_encrypted_types, &nigori); |
@@ -2561,19 +2566,29 @@ void SyncManager::SyncInternal::OnSyncEngineEvent( |
// yet, prompt the user for a passphrase. |
if (cryptographer->has_pending_keys()) { |
VLOG(1) << "OnPassPhraseRequired Sent"; |
+ allstatus_.SetCryptographerReady(false); |
akalin
2011/08/03 19:10:02
seems less brittle to, e.g. set cryptographerready
Nicolas Zea
2011/08/03 22:04:24
Done.
|
ObserverList<SyncManager::Observer> temp_obs_list; |
CopyObservers(&temp_obs_list); |
FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, |
OnPassphraseRequired(sync_api::REASON_DECRYPTION)); |
} else if (!cryptographer->is_ready() && |
event.snapshot->initial_sync_ended.test(syncable::NIGORI)) { |
+ allstatus_.SetCryptographerReady(false); |
VLOG(1) << "OnPassphraseRequired sent because cryptographer is not " |
<< "ready"; |
ObserverList<SyncManager::Observer> temp_obs_list; |
CopyObservers(&temp_obs_list); |
FOR_EACH_OBSERVER(SyncManager::Observer, temp_obs_list, |
OnPassphraseRequired(sync_api::REASON_ENCRYPTION)); |
+ } else { |
+ allstatus_.SetCryptographerReady(true); |
} |
+ |
+ syncable::ModelTypeSet encrypted_types = |
+ cryptographer->GetEncryptedTypes(); |
+ allstatus_.SetEncryptEverything(encrypted_types.size() > |
+ encrypted_types.count(syncable::PASSWORDS)); |
+ |
// If everything is in order(we have the passphrase) then there is no |
// need to inform the listeners. They will just wait for sync |
// completion event and if no errors have been raised it means |