Index: components/autofill/content/renderer/password_autofill_agent.cc |
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc |
index 88a79968f86a2868a3699832a1029aacd077d9e3..d14b172e4f02c0daf848b34c44a9cac1deffe7e8 100644 |
--- a/components/autofill/content/renderer/password_autofill_agent.cc |
+++ b/components/autofill/content/renderer/password_autofill_agent.cc |
@@ -1769,13 +1769,21 @@ void PasswordAutofillAgent::ProvisionallySavePassword( |
const blink::WebFormElement& form, |
const blink::WebInputElement& input, |
ProvisionallySaveRestriction restriction) { |
- if (!password_form || (restriction == RESTRICTION_NON_EMPTY_PASSWORD && |
- password_form->password_value.empty() && |
- password_form->new_password_value.empty())) { |
+ if (!password_form) |
return; |
- } |
+ bool has_no_password = password_form->password_value.empty() && |
+ password_form->new_password_value.empty(); |
+ if (restriction == RESTRICTION_NON_EMPTY_PASSWORD && has_no_password) |
+ return; |
+ |
DCHECK(password_form && (!form.IsNull() || !input.IsNull())); |
provisionally_saved_form_.Set(std::move(password_form), form, input); |
+ if (!has_no_password) { |
+ GetPasswordManagerDriver()->ShowManualFallbackForSaving( |
+ provisionally_saved_form_.password_form()); |
+ } else { |
+ GetPasswordManagerDriver()->HideManualFallbackForSaving(); |
+ } |
} |
const mojom::AutofillDriverPtr& PasswordAutofillAgent::GetAutofillDriver() { |