Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Unified Diff: components/password_manager/core/browser/password_manager.cc

Issue 1031153002: [Credential Management] Smart lock save Credentials bubble should not always pop up. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 06e50ece1597ff0667f51ed7ee5d39980aaa15fc..5d8bd589a9940b8c098fc4f815aefded3b2cac0c 100644
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -42,33 +42,6 @@ const char kSpdyProxyRealm[] = "/SpdyProxy";
// already.
typedef autofill::SavePasswordProgressLogger Logger;
-// This routine is called when PasswordManagers are constructed.
-//
-// Currently we report metrics only once at startup. We require
-// 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,
- PasswordManagerClient* client) {
- static base::PlatformThreadId initial_thread_id =
- base::PlatformThread::CurrentId();
- DCHECK(initial_thread_id == base::PlatformThread::CurrentId());
-
- static bool ran_once = false;
- if (ran_once)
- return;
- ran_once = true;
-
- PasswordStore* store = client->GetPasswordStore();
- // May be null in tests.
- if (store) {
- store->ReportMetrics(client->GetSyncUsername(),
- client->IsPasswordSyncEnabled(
- password_manager::ONLY_CUSTOM_PASSPHRASE));
- }
- UMA_HISTOGRAM_BOOLEAN("PasswordManager.Enabled", password_manager_enabled);
-}
-
bool ShouldDropSyncCredential() {
std::string group_name =
base::FieldTrialList::FindFullName("PasswordManagerDropSyncCredential");
@@ -144,10 +117,6 @@ void PasswordManager::RegisterLocalPrefs(PrefRegistrySimple* registry) {
PasswordManager::PasswordManager(PasswordManagerClient* client)
: client_(client) {
DCHECK(client_);
- saving_passwords_enabled_.Init(prefs::kPasswordManagerSavingEnabled,
- client_->GetPrefs());
-
- ReportMetrics(*saving_passwords_enabled_, client_);
}
PasswordManager::~PasswordManager() {
@@ -157,7 +126,7 @@ PasswordManager::~PasswordManager() {
void PasswordManager::SetFormHasGeneratedPassword(
password_manager::PasswordManagerDriver* driver,
const PasswordForm& form) {
- DCHECK(IsSavingEnabledForCurrentPage());
+ DCHECK(client_->IsSavingEnabledForCurrentPage());
for (ScopedVector<PasswordFormManager>::iterator iter =
pending_login_managers_.begin();
@@ -179,28 +148,8 @@ void PasswordManager::SetFormHasGeneratedPassword(
// TODO(gcasto): Add UMA stats to track this.
}
-bool PasswordManager::IsEnabledForCurrentPage() const {
- bool ssl_errors = client_->DidLastPageLoadEncounterSSLErrors();
- bool client_check = client_->IsPasswordManagerEnabledForCurrentPage();
-
- scoped_ptr<BrowserSavePasswordProgressLogger> logger;
- if (client_->IsLoggingActive()) {
- logger.reset(new BrowserSavePasswordProgressLogger(client_));
- logger->LogMessage(Logger::STRING_ENABLED_FOR_CURRENT_PAGE_METHOD);
- logger->LogBoolean(Logger::STRING_SSL_ERRORS_PRESENT, ssl_errors);
- logger->LogBoolean(Logger::STRING_CLIENT_CHECK_PRESENT, client_check);
- }
-
- return !ssl_errors && client_check;
-}
-
-bool PasswordManager::IsSavingEnabledForCurrentPage() const {
- return *saving_passwords_enabled_ && !client_->IsOffTheRecord() &&
- IsEnabledForCurrentPage();
-}
-
void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
- bool is_saving_enabled = IsSavingEnabledForCurrentPage();
+ bool is_saving_enabled = client_->IsSavingEnabledForCurrentPage();
scoped_ptr<BrowserSavePasswordProgressLogger> logger;
if (client_->IsLoggingActive()) {
@@ -208,9 +157,6 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
logger->LogMessage(Logger::STRING_PROVISIONALLY_SAVE_PASSWORD_METHOD);
logger->LogPasswordForm(Logger::STRING_PROVISIONALLY_SAVE_PASSWORD_FORM,
form);
- logger->LogBoolean(Logger::STRING_IS_SAVING_ENABLED, is_saving_enabled);
- logger->LogBoolean(Logger::STRING_SSL_ERRORS_PRESENT,
- client_->DidLastPageLoadEncounterSSLErrors());
}
if (!is_saving_enabled) {
@@ -446,7 +392,8 @@ void PasswordManager::CreatePendingLoginManagers(
logger->LogMessage(Logger::STRING_CREATE_LOGIN_MANAGERS_METHOD);
}
- if (!IsEnabledForCurrentPage())
+ if (client_->DidLastPageLoadEncounterSSLErrors() ||
+ !client_->IsPasswordManagementEnabledForCurrentPage())
return;
if (logger) {
@@ -520,7 +467,7 @@ void PasswordManager::OnPasswordFormsRendered(
return;
}
- DCHECK(IsSavingEnabledForCurrentPage());
+ DCHECK(client_->IsSavingEnabledForCurrentPage());
// If the server throws an internal error, access denied page, page not
// found etc. after a login attempt, we do not save the credentials.

Powered by Google App Engine
This is Rietveld 408576698