Index: components/password_manager/core/browser/password_form_manager.cc |
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc |
index da366f28f3608468d3b1c6b81e811def05582451..dec8e5add7178e2704b308c2d1d5995025dd5696 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -470,32 +470,21 @@ void PasswordFormManager::ProcessFrame( |
if (best_matches_.empty()) |
return; |
- // Do not autofill on sign-up or change password forms (until we have some |
- // working change password functionality). Combined login-sign-up forms are OK |
- // to autofill in the login part. |
- if (observed_form_.layout != PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP && |
- !observed_form_.new_password_element.empty()) { |
- if (client_->IsLoggingActive()) { |
- BrowserSavePasswordProgressLogger logger(client_); |
- logger.LogMessage(Logger::STRING_PROCESS_FRAME_METHOD); |
- logger.LogMessage(Logger::STRING_FORM_NOT_AUTOFILLED); |
- } |
- return; |
- } |
- |
// Proceed to autofill. |
// Note that we provide the choices but don't actually prefill a value if: |
// (1) we are in Incognito mode, (2) the ACTION paths don't match, |
// or (3) if it matched using public suffix domain matching. |
- // However, 2 and 3 should not apply to Android-based credentials found via |
- // affiliation-based matching (we want to autofill them). |
+ // (4) the form has new password field, i.e. it's Sign Up or password change |
+ // form. However, 2 and 3 should not apply to Android-based credentials found |
+ // via affiliation-based matching (we want to autofill them). |
// TODO(engedy): Clean this up. See: https://crbug.com/476519. |
bool wait_for_username = |
client_->IsOffTheRecord() || |
(!IsValidAndroidFacetURI(preferred_match_->original_signon_realm) && |
(observed_form_.action.GetWithEmptyPath() != |
preferred_match_->action.GetWithEmptyPath() || |
- preferred_match_->IsPublicSuffixMatch())); |
+ preferred_match_->IsPublicSuffixMatch() || |
+ !observed_form_.new_password_element.empty())); |
if (wait_for_username) |
manager_action_ = kManagerActionNone; |
else |