 Chromium Code Reviews
 Chromium Code Reviews Issue 256003003:
  Enable Automatic Passwords Saving  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 256003003:
  Enable Automatic Passwords Saving  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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(); | 
| } |