summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorzea <zea@chromium.org>2015-05-01 10:56:40 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-01 17:57:15 +0000
commitb1b09b7962fe68bfb5df60a68e96b6b2f9bd1dcc (patch)
treef2c51bce42883793297d78c6a98f3df0ccafe7e1 /components
parent9b88c63339b08e50458b64cb210b552ebf5dba85 (diff)
downloadchromium_src-b1b09b7962fe68bfb5df60a68e96b6b2f9bd1dcc.zip
chromium_src-b1b09b7962fe68bfb5df60a68e96b6b2f9bd1dcc.tar.gz
chromium_src-b1b09b7962fe68bfb5df60a68e96b6b2f9bd1dcc.tar.bz2
[Sync] Add support for only prompting for passphrase once
If the finch experiment is set, we'll only use the native android notification once, after which we stop prompting for a passphrase. The user can still resolve their passphrase error via the settings. This patch also introduces histograms to track how people typically interact with the passphrase dialog. In particular, how often do they not even try to enter a passphrase, enter the wrong passphrase, succeed, or follow the dashboard reset link. BUG=481562 Review URL: https://codereview.chromium.org/1114753002 Cr-Commit-Position: refs/heads/master@{#327935}
Diffstat (limited to 'components')
-rw-r--r--components/sync_driver/pref_names.cc5
-rw-r--r--components/sync_driver/pref_names.h2
-rw-r--r--components/sync_driver/sync_prefs.cc11
-rw-r--r--components/sync_driver/sync_prefs.h5
4 files changed, 22 insertions, 1 deletions
diff --git a/components/sync_driver/pref_names.cc b/components/sync_driver/pref_names.cc
index 9ba8dda..b167a0b 100644
--- a/components/sync_driver/pref_names.cc
+++ b/components/sync_driver/pref_names.cc
@@ -96,6 +96,11 @@ const char kSyncRemainingRollbackTries[] = "sync.remaining_rollback_tries";
// Stores the timestamp of first sync.
const char kSyncFirstSyncTime[] = "sync.first_sync_time";
+// Stores whether a platform specific passphrase error prompt has been shown to
+// the user (e.g. an Android system notification). Used for out of band prompts
+// that we only want to use once.
+const char kSyncPassphrasePrompted[] = "sync.passphrase_prompted";
+
} // namespace prefs
} // namespace sync_driver
diff --git a/components/sync_driver/pref_names.h b/components/sync_driver/pref_names.h
index 425fb41..5760deb 100644
--- a/components/sync_driver/pref_names.h
+++ b/components/sync_driver/pref_names.h
@@ -63,6 +63,8 @@ extern const char kSyncSpareBootstrapToken[];
extern const char kSyncRemainingRollbackTries[];
extern const char kSyncFirstSyncTime[];
+extern const char kSyncPassphrasePrompted[];
+
} // namespace prefs
} // namespace sync_driver
diff --git a/components/sync_driver/sync_prefs.cc b/components/sync_driver/sync_prefs.cc
index c28a213..89f5320 100644
--- a/components/sync_driver/sync_prefs.cc
+++ b/components/sync_driver/sync_prefs.cc
@@ -80,6 +80,8 @@ void SyncPrefs::RegisterProfilePrefs(
registry->RegisterStringPref(prefs::kSyncSessionsGUID, std::string());
registry->RegisterIntegerPref(prefs::kSyncRemainingRollbackTries, 0);
+
+ registry->RegisterBooleanPref(prefs::kSyncPassphrasePrompted, false);
}
void SyncPrefs::AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer) {
@@ -98,6 +100,7 @@ void SyncPrefs::ClearPreferences() {
pref_service_->ClearPref(prefs::kSyncHasSetupCompleted);
pref_service_->ClearPref(prefs::kSyncEncryptionBootstrapToken);
pref_service_->ClearPref(prefs::kSyncKeystoreEncryptionBootstrapToken);
+ pref_service_->ClearPref(prefs::kSyncPassphrasePrompted);
// TODO(nick): The current behavior does not clear
// e.g. prefs::kSyncBookmarks. Is that really what we want?
@@ -431,4 +434,12 @@ void SyncPrefs::ClearFirstSyncTime() {
pref_service_->ClearPref(prefs::kSyncFirstSyncTime);
}
+bool SyncPrefs::IsPassphrasePrompted() const {
+ return pref_service_->GetBoolean(prefs::kSyncPassphrasePrompted);
+}
+
+void SyncPrefs::SetPassphrasePrompted(bool value) {
+ pref_service_->SetBoolean(prefs::kSyncPassphrasePrompted, value);
+}
+
} // namespace sync_driver
diff --git a/components/sync_driver/sync_prefs.h b/components/sync_driver/sync_prefs.h
index a65f0b3ad..2310946 100644
--- a/components/sync_driver/sync_prefs.h
+++ b/components/sync_driver/sync_prefs.h
@@ -133,8 +133,11 @@ class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe),
void SetFirstSyncTime(base::Time time);
void ClearFirstSyncTime();
- // For testing.
+ // Out of band sync passphrase prompt getter/setter.
+ bool IsPassphrasePrompted() const;
+ void SetPassphrasePrompted(bool value);
+ // For testing.
void SetManagedForTest(bool is_managed);
private: