Chromium Code Reviews| Index: components/password_manager/core/browser/password_manager.cc |
| diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc |
| index 1ab931f4684effabaff119fa0b6362237492a0c5..f6e840a7c67726b68625ecbe2bbcb56a5c38da77 100644 |
| --- a/components/password_manager/core/browser/password_manager.cc |
| +++ b/components/password_manager/core/browser/password_manager.cc |
| @@ -34,17 +34,21 @@ const char kSpdyProxyRealm[] = "/SpdyProxy"; |
| // that this is only ever called from a single thread in order to |
| // avoid needing to lock (a static boolean flag is then sufficient to |
| // guarantee running only once). |
| -void ReportMetrics(bool password_manager_enabled) { |
| +void ReportMetrics(bool password_manager_enabled, |
| + bool password_manager_enable_automatic_passwords_saving) { |
|
vabr (Chromium)
2014/04/28 09:13:14
I don't think we need UMA metrics until we expose
rchtara
2014/04/28 11:28:29
Done.
|
| static base::PlatformThreadId initial_thread_id = |
| base::PlatformThread::CurrentId(); |
| DCHECK(initial_thread_id == base::PlatformThread::CurrentId()); |
| + |
|
vabr (Chromium)
2014/04/28 09:13:14
nit: Please remove this blank line.
rchtara
2014/04/28 11:28:29
Done.
|
| static bool ran_once = false; |
| if (ran_once) |
| return; |
| ran_once = true; |
| UMA_HISTOGRAM_BOOLEAN("PasswordManager.Enabled", password_manager_enabled); |
| + UMA_HISTOGRAM_BOOLEAN("PasswordManager.EnableAutomaticPasswordsSaving", |
| + password_manager_enable_automatic_passwords_saving); |
| } |
| } // namespace |
| @@ -60,6 +64,10 @@ void PasswordManager::RegisterProfilePrefs( |
| true, |
| user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| registry->RegisterBooleanPref( |
| + prefs::kPasswordManagerEnableAutomaticPasswordsSaving, |
|
vabr (Chromium)
2014/04/28 09:13:14
As noted in one of the comments above, please remo
rchtara
2014/04/28 11:28:29
Done.
|
| + false, |
| + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| + registry->RegisterBooleanPref( |
| prefs::kPasswordManagerAllowShowPasswords, |
| true, |
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| @@ -74,7 +82,16 @@ PasswordManager::PasswordManager(PasswordManagerClient* client) |
| password_manager_enabled_.Init(prefs::kPasswordManagerEnabled, |
| client_->GetPrefs()); |
| - ReportMetrics(*password_manager_enabled_); |
| + BooleanPrefMember enable_automatic_passwords_saving_pref; |
|
vabr (Chromium)
2014/04/28 09:13:14
Ditto: As noted in one of the comments above, plea
rchtara
2014/04/28 11:28:29
Done.
|
| + enable_automatic_passwords_saving_pref.Init( |
| + prefs::kPasswordManagerEnableAutomaticPasswordsSaving, |
| + client_->GetPrefs()); |
| + enable_automatic_passwords_saving_ = *enable_automatic_passwords_saving_pref; |
| + if (client_->IsAutomaticPasswordsSavingEnabled()) |
| + enable_automatic_passwords_saving_ = true; |
| + |
| + ReportMetrics(*password_manager_enabled_, |
| + enable_automatic_passwords_saving_); |
| } |
| PasswordManager::~PasswordManager() { |
| @@ -270,7 +287,8 @@ void PasswordManager::OnPasswordFormsParsed( |
| } |
| bool PasswordManager::ShouldPromptUserToSavePassword() const { |
| - return provisional_save_manager_->IsNewLogin() && |
| + return !enable_automatic_passwords_saving_ && |
| + provisional_save_manager_->IsNewLogin() && |
| !provisional_save_manager_->HasGeneratedPassword() && |
| !provisional_save_manager_->IsPendingCredentialsPublicSuffixMatch(); |
| } |