Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2007)

Unified Diff: chrome/browser/sync/internal_api/sync_manager.h

Issue 8356026: [Sync] Cache encrypted types info in ProfileSyncService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove diff Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/internal_api/sync_manager.h
diff --git a/chrome/browser/sync/internal_api/sync_manager.h b/chrome/browser/sync/internal_api/sync_manager.h
index 650893d2aba22d7f89deeae55187d8fcfc10fdc7..e04b76b19c1cc5558288060192da63a42a7fa8e9 100644
--- a/chrome/browser/sync/internal_api/sync_manager.h
+++ b/chrome/browser/sync/internal_api/sync_manager.h
@@ -376,9 +376,29 @@ class SyncManager {
virtual void OnClearServerDataSucceeded() = 0;
virtual void OnClearServerDataFailed() = 0;
- // Called after we finish encrypting all appropriate datatypes.
- virtual void OnEncryptionComplete(
- const syncable::ModelTypeSet& encrypted_types) = 0;
+ // Called when the set of encrypted types or the encrypt
+ // everything flag has been changed. Note that encryption isn't
+ // complete until the OnEncryptionComplete() notification has been
+ // sent (see below).
+ //
+ // |encrypted_types| will always be a superset of
+ // Cryptographer::SensitiveTypes(). If |encrypt_everything| is
+ // true, |encrypted_types| will be the set of all known types.
+ //
+ // Until this function is called, observers can assume that the
+ // set of encrypted types is Cryptographer::SensitiveTypes() and
+ // that the encrypt everything flag is false.
+ //
+ // Called from within a transaction.
+ virtual void OnEncryptedTypesChanged(
+ const syncable::ModelTypeSet& encrypted_types,
+ bool encrypt_everything) = 0;
+
+ // Called after we finish encrypting the current set of encrypted
+ // types.
+ //
+ // Called from within a transaction.
+ virtual void OnEncryptionComplete() = 0;
virtual void OnActionableError(
const browser_sync::SyncProtocolError& sync_protocol_error) = 0;
@@ -522,24 +542,34 @@ class SyncManager {
// May be called from any thread.
UserShare* GetUserShare() const;
- // Inform the cryptographer of the most recent passphrase and set of encrypted
- // types (from nigori node), then ensure all data that needs encryption is
- // encrypted with the appropriate passphrase.
- // Note: opens a transaction and can trigger ON_PASSPHRASE_REQUIRED, so must
- // only be called after syncapi has been initialized.
+ // Inform the cryptographer of the most recent passphrase and set of
+ // encrypted types (from nigori node), then ensure all data that
+ // needs encryption is encrypted with the appropriate passphrase.
+ //
+ // May trigger OnPassphraseRequired(). Otherwise, it will trigger
+ // OnEncryptedTypesChanged() if necessary (see comments for
+ // OnEncryptedTypesChanged()), and then OnEncryptionComplete().
+ //
+ // Note: opens a transaction, so must only be called after syncapi
+ // has been initialized.
void RefreshEncryption();
- // Enable encryption of all sync data. Once enabled, it can never be disabled
- // without clearing the server data.
+ // Enable encryption of all sync data. Once enabled, it can never be
+ // disabled without clearing the server data.
+ //
+ // This will trigger OnEncryptedTypesChanged() if necessary (see
+ // comments for OnEncryptedTypesChanged()). It then may trigger
+ // OnPassphraseRequired(), but otherwise it will trigger
+ // OnEncryptionComplete().
void EnableEncryptEverything();
// Returns true if we are currently encrypting all sync data. May
// be called on any thread.
- bool EncryptEverythingEnabled() const;
+ bool EncryptEverythingEnabledForTest() const;
// Gets the set of encrypted types from the cryptographer
// Note: opens a transaction. May be called from any thread.
- syncable::ModelTypeSet GetEncryptedDataTypes() const;
+ syncable::ModelTypeSet GetEncryptedDataTypesForTest() const;
// Reads the nigori node to determine if any experimental types should be
// enabled.

Powered by Google App Engine
This is Rietveld 408576698