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

Unified Diff: chrome/browser/password_manager/chrome_password_manager_client.cc

Issue 1850923004: Disable the autofill password manager when a credential is sent via CM API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 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: chrome/browser/password_manager/chrome_password_manager_client.cc
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
index 719c1f53af7a95065b68846ec5528ea4f4c69c2e..aefa51520ee51063147363050095dff31b83dcac 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -263,10 +263,8 @@ bool ChromePasswordManagerClient::PromptUserToChooseCredentials(
// Set up an intercept callback if the prompt is zero-clickable (e.g. just one
// form provided).
CredentialsCallback intercept =
- local_forms.size() == 1u
- ? base::Bind(&ChromePasswordManagerClient::OnCredentialsChosen,
- base::Unretained(this), callback)
- : callback;
+ base::Bind(&ChromePasswordManagerClient::OnCredentialsChosen,
+ base::Unretained(this), callback, local_forms.size() == 1);
#if defined(OS_ANDROID)
// Deletes itself on the event from Java counterpart, when user interacts with
// dialog.
@@ -285,9 +283,14 @@ bool ChromePasswordManagerClient::PromptUserToChooseCredentials(
void ChromePasswordManagerClient::OnCredentialsChosen(
const CredentialsCallback& callback,
+ bool one_local_credential,
const autofill::PasswordForm* form) {
callback.Run(form);
+ // If a site gets back a credential some navigations are likely to occur. They
+ // shouldn't trigger the autofill password manager.
if (form)
+ password_manager_.DropFormManagers();
+ if (form && one_local_credential)
PromptUserToEnableAutosigninIfNecessary();
}
@@ -307,6 +310,9 @@ void ChromePasswordManagerClient::NotifyUserAutoSignin(
ScopedVector<autofill::PasswordForm> local_forms,
const GURL& origin) {
DCHECK(!local_forms.empty());
+ // If a site gets back a credential some navigations are likely to occur. They
+ // shouldn't trigger the autofill password manager.
+ password_manager_.DropFormManagers();
#if BUILDFLAG(ANDROID_JAVA_UI)
ShowAutoSigninPrompt(web_contents(), local_forms[0]->username_value);
#else

Powered by Google App Engine
This is Rietveld 408576698