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(); |
} |