diff options
author | zea <zea@chromium.org> | 2015-05-01 10:56:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-01 17:57:15 +0000 |
commit | b1b09b7962fe68bfb5df60a68e96b6b2f9bd1dcc (patch) | |
tree | f2c51bce42883793297d78c6a98f3df0ccafe7e1 /components | |
parent | 9b88c63339b08e50458b64cb210b552ebf5dba85 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | components/sync_driver/pref_names.h | 2 | ||||
-rw-r--r-- | components/sync_driver/sync_prefs.cc | 11 | ||||
-rw-r--r-- | components/sync_driver/sync_prefs.h | 5 |
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: |