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

Unified Diff: chrome/browser/sync/syncable/syncable.h

Issue 6465005: [Sync] Initial support for encrypting any datatype (no UI hookup yet). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Self review Created 9 years, 10 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/syncable/syncable.h
diff --git a/chrome/browser/sync/syncable/syncable.h b/chrome/browser/sync/syncable/syncable.h
index ba4611559fc5a6ddc7df6dfb7c81967df855e3cf..90f9def6488acf82f105b47699d38d4b2f421fe5 100644
--- a/chrome/browser/sync/syncable/syncable.h
+++ b/chrome/browser/sync/syncable/syncable.h
@@ -791,6 +791,12 @@ class Directory {
const std::string& dir_name,
const FilePath& backing_filepath);
+ // Update this directory's set of encrypted datatypes.
+ // Note: |types| should be a complete set of all datatypes that require
+ // encryption, not just a subset. This does not actually perform any
+ // encryption or modify the Nigori node.
+ void SetEncryptedDataTypes(const ModelTypeSet& encrypted_types);
+
private:
// These private versions expect the kernel lock to already be held
// before calling.
@@ -1021,6 +1027,12 @@ class Directory {
// The next metahandle is protected by kernel mutex.
int64 next_metahandle;
+ // The set of all datatypes that currently require encryption. This is
+ // set when we load the nigori node and modified anytime we either receive
+ // a change to the nigori node or through the local user changing the
+ // encryption status.
+ ModelTypeSet encrypted_datatypes;
tim (not reviewing) 2011/02/11 06:52:31 Why do we store this in 3 places again? The fact
Nicolas Zea 2011/02/14 21:18:41 Done.
+
// Keep a history of recently flushed metahandles for debugging
// purposes. Protected by the save_changes_mutex.
DebugQueue<int64, 1000> flushed_metahandles;
@@ -1048,8 +1060,18 @@ class BaseTransaction {
inline Directory* directory() const { return directory_; }
inline Id root_id() const { return Id(); }
+ inline const ModelTypeSet& GetEncryptedDatatypes() {
+ return dirkernel_->encrypted_datatypes;
+ }
+
virtual ~BaseTransaction();
+ // Update this transaction's directory's set of encrypted datatypes.
+ // Note: |encrypted_types| should be a complete set of all datatypes that
+ // require encryption, not just a subset. This does not actually perform any
+ // encryption or modify the Nigori node.
+ void SetEncryptedDataTypes(const ModelTypeSet& encrypted_types);
tim (not reviewing) 2011/02/11 06:52:31 Why have get/set operations on the transaction whe
Nicolas Zea 2011/02/14 21:18:41 Done.
+
protected:
BaseTransaction(Directory* directory, const char* name,
const char* source_file, int line, WriterTag writer);

Powered by Google App Engine
This is Rietveld 408576698