summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/sync_encryption_handler_impl.h
diff options
context:
space:
mode:
authormaniscalco <maniscalco@chromium.org>2015-07-01 09:37:09 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-01 16:38:45 +0000
commit0f6dcdf866bd0ebba9325bfc81d7d657bdd51360 (patch)
tree88d121a11c879236bfb5d389ab26b02011d8bde9 /sync/internal_api/sync_encryption_handler_impl.h
parent4139b055b4141885662f3d973258d8acc88cdeee (diff)
downloadchromium_src-0f6dcdf866bd0ebba9325bfc81d7d657bdd51360.zip
chromium_src-0f6dcdf866bd0ebba9325bfc81d7d657bdd51360.tar.gz
chromium_src-0f6dcdf866bd0ebba9325bfc81d7d657bdd51360.tar.bz2
[Sync] Add PassphraseTransitionClearDataOption to SyncEncryptionHandler
Update SyncEncryptionHandlerImpl to receive a PassphraseTransitionClearDataOption and conditionally update the Nigori node to indicate that server data should be cleared as part of the transition to passphrase encryption. The actual task of updating the Nigori node is left as a TODO for now and will be implemented in a future CL. The value of PassphraseTransitionClearDataOption is controlled by the kSyncEnableClearDataOnPassphraseEncryption switch, which defaults to off. There is no behavior change in this CL. BUG=490836,505917 Review URL: https://codereview.chromium.org/1214853009 Cr-Commit-Position: refs/heads/master@{#337038}
Diffstat (limited to 'sync/internal_api/sync_encryption_handler_impl.h')
-rw-r--r--sync/internal_api/sync_encryption_handler_impl.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/sync/internal_api/sync_encryption_handler_impl.h b/sync/internal_api/sync_encryption_handler_impl.h
index 4e466f1..bb2a0e5 100644
--- a/sync/internal_api/sync_encryption_handler_impl.h
+++ b/sync/internal_api/sync_encryption_handler_impl.h
@@ -46,11 +46,15 @@ class SYNC_EXPORT_PRIVATE SyncEncryptionHandlerImpl
: public SyncEncryptionHandler,
public syncable::NigoriHandler {
public:
+ // |clear_data_option| controls whether this object should update the Nigori
+ // node to indiciate that we are to clear server data as part of the
+ // transition to passphrase encryption.
SyncEncryptionHandlerImpl(
UserShare* user_share,
Encryptor* encryptor,
const std::string& restored_key_for_bootstrapping,
- const std::string& restored_keystore_key_for_bootstrapping);
+ const std::string& restored_keystore_key_for_bootstrapping,
+ PassphraseTransitionClearDataOption clear_data_option);
~SyncEncryptionHandlerImpl() override;
// SyncEncryptionHandler implementation.
@@ -272,6 +276,10 @@ class SYNC_EXPORT_PRIVATE SyncEncryptionHandlerImpl
// Notify observers when a custom passphrase is set by this device.
void NotifyObserversOfLocalCustomPassphrase(WriteTransaction* trans);
+ // Update the Nigori node to indicate that we're transitioning to passphrsae
+ // encryption.
+ void UpdateNigoriForTransitionToPassphraseEncryption(WriteTransaction* trans);
+
base::ThreadChecker thread_checker_;
base::ObserverList<SyncEncryptionHandler::Observer> observers_;
@@ -314,6 +322,8 @@ class SYNC_EXPORT_PRIVATE SyncEncryptionHandlerImpl
// before support for this field was added.
base::Time custom_passphrase_time_;
+ const PassphraseTransitionClearDataOption clear_data_option_;
+
base::WeakPtrFactory<SyncEncryptionHandlerImpl> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(SyncEncryptionHandlerImpl);