Chromium Code Reviews| 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 |