| Index: components/sync/engine_impl/model_type_worker.h
|
| diff --git a/components/sync/engine_impl/model_type_worker.h b/components/sync/engine_impl/model_type_worker.h
|
| index 4d480415e6d4a96e9119fb49e70a73e7abd0ba2c..aefaaee6cfcd9374025b09be3ba51fcc3f3fb4f0 100644
|
| --- a/components/sync/engine_impl/model_type_worker.h
|
| +++ b/components/sync/engine_impl/model_type_worker.h
|
| @@ -88,6 +88,10 @@ class ModelTypeWorker : public UpdateHandler,
|
| std::unique_ptr<CommitContribution> GetContribution(
|
| size_t max_entries) override;
|
|
|
| + // An alternative way to drive sending data to the processor, that should be
|
| + // called when a new encryption mechanism is ready.
|
| + void EncryptionAcceptedApplyUpdates();
|
| +
|
| // Callback for when our contribution gets a response.
|
| void OnCommitResponse(CommitResponseDataList* response_list);
|
|
|
| @@ -109,6 +113,10 @@ class ModelTypeWorker : public UpdateHandler,
|
| // settings in a good state.
|
| bool CanCommitItems() const;
|
|
|
| + // Returns true if this type should stop communicating because of outstanding
|
| + // encryption issues and must wait for keys to be updated.
|
| + bool BlockForEncryption() const;
|
| +
|
| // Takes |commit_entity| populated from fields of WorkerEntityTracker and
|
| // adjusts some fields before committing to server. Adjustments include
|
| // generating client-assigned ID, encrypting data, etc.
|
| @@ -120,6 +128,17 @@ class ModelTypeWorker : public UpdateHandler,
|
| // keys to the processor to trigger re-encryption if necessary.
|
| void OnCryptographerUpdated();
|
|
|
| + // Updates the encryption key name stored in |model_type_state_| if it differs
|
| + // from the default encryption key name in |cryptographer_|. Returns whether
|
| + // an update occured.
|
| + bool UpdateEncryptionKeyName();
|
| +
|
| + // Iterates through all elements in |entities_| and tries to decrypt anything
|
| + // that has encrypted data. Also updates |has_encrypted_updates_| to reflect
|
| + // whether anything in |entities_| was not decryptable by |cryptographer_|.
|
| + // Should only be called during a GetUpdates cycle.
|
| + void DecryptedStoredEntities();
|
| +
|
| // Attempts to decrypt the given specifics and return them in the |out|
|
| // parameter. Assumes cryptographer_->CanDecrypt(specifics) returned true.
|
| //
|
| @@ -173,6 +192,9 @@ class ModelTypeWorker : public UpdateHandler,
|
| // they can all be sent to the processor at once.
|
| UpdateResponseDataList pending_updates_;
|
|
|
| + // Whether there are outstanding encrypted updates in |entities_|.
|
| + bool has_encrypted_updates_ = false;
|
| +
|
| base::ThreadChecker thread_checker_;
|
| base::WeakPtrFactory<ModelTypeWorker> weak_ptr_factory_;
|
| };
|
|
|