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

Unified Diff: chrome/browser/sync/util/cryptographer.cc

Issue 8356026: [Sync] Cache encrypted types info in ProfileSyncService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Revert to synchronous notifications 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/util/cryptographer.cc
diff --git a/chrome/browser/sync/util/cryptographer.cc b/chrome/browser/sync/util/cryptographer.cc
index 24f7851f0da8ce63f750d64b25bb1fd670795da5..27e4cc474f6799336b8e406809e196ffaa7f9f12 100644
--- a/chrome/browser/sync/util/cryptographer.cc
+++ b/chrome/browser/sync/util/cryptographer.cc
@@ -16,6 +16,8 @@ const char kNigoriTag[] = "google_chrome_nigori";
// assign the same name to a particular triplet.
const char kNigoriKeyName[] = "nigori-key";
+Cryptographer::Observer::~Observer() {}
+
Cryptographer::Cryptographer()
: default_nigori_(NULL),
encrypt_everything_(false) {
@@ -25,6 +27,14 @@ Cryptographer::Cryptographer()
Cryptographer::~Cryptographer() {}
+void Cryptographer::AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void Cryptographer::RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
void Cryptographer::Bootstrap(const std::string& restored_bootstrap_token) {
if (is_initialized()) {
NOTREACHED();
@@ -312,7 +322,10 @@ void Cryptographer::UpdateEncryptedTypesFromNigori(
if (!nigori.has_encrypt_everything() &&
encrypted_types_.size() > sensitive_types.size()) {
set_encrypt_everything();
+ return;
}
+
+ EmitEncryptedTypesChangeNotification();
Nicolas Zea 2011/10/21 14:29:07 Perhaps only emit if the types actually changed? (
akalin 2011/10/22 03:28:38 Done.
}
void Cryptographer::UpdateNigoriFromEncryptedTypes(
@@ -343,6 +356,7 @@ void Cryptographer::UpdateNigoriFromEncryptedTypes(
void Cryptographer::set_encrypt_everything() {
encrypt_everything_ = true;
encrypted_types_ = syncable::GetAllRealModelTypes();
+ EmitEncryptedTypesChangeNotification();
}
bool Cryptographer::encrypt_everything() const {
@@ -351,12 +365,24 @@ bool Cryptographer::encrypt_everything() const {
void Cryptographer::SetEncryptedTypes(syncable::ModelTypeSet new_types) {
encrypted_types_.insert(new_types.begin(), new_types.end());
+ EmitEncryptedTypesChangeNotification();
}
syncable::ModelTypeSet Cryptographer::GetEncryptedTypes() const {
return encrypted_types_;
}
+void Cryptographer::MarkEncryptionComplete() {
+ EmitEncryptedTypesChangeNotification();
+ FOR_EACH_OBSERVER(Observer, observers_, OnEncryptionComplete());
+}
+
+void Cryptographer::EmitEncryptedTypesChangeNotification() {
+ FOR_EACH_OBSERVER(
+ Observer, observers_,
+ OnEncryptedTypesChanged(encrypted_types_, encrypt_everything_));
+}
+
void Cryptographer::InstallKeys(const std::string& default_key_name,
const sync_pb::NigoriKeyBag& bag) {
int key_size = bag.key_size();

Powered by Google App Engine
This is Rietveld 408576698