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 f4a57505001eae4c7904d1cbee8bdb07918bbfb3..7b53036d2fb4ea2ed0b1586c336c8e294047fe9a 100644 |
--- a/components/password_manager/core/browser/password_manager.cc |
+++ b/components/password_manager/core/browser/password_manager.cc |
@@ -178,6 +178,16 @@ void PasswordManager::GenerationAvailableForForm(const PasswordForm& form) { |
} |
} |
+void PasswordManager::OnPresaveGeneratedPassword( |
+ const autofill::PasswordForm& form) { |
+ DCHECK(client_->IsSavingAndFillingEnabledForCurrentPage()); |
+ PasswordFormManager* form_manager = GetMatchingPendingManager(form); |
+ if (form_manager) { |
+ form_manager->PresaveGeneratedPassword(form); |
+ return; |
+ } |
+} |
+ |
void PasswordManager::SetHasGeneratedPasswordForForm( |
password_manager::PasswordManagerDriver* driver, |
const PasswordForm& form, |
@@ -186,6 +196,8 @@ void PasswordManager::SetHasGeneratedPasswordForForm( |
PasswordFormManager* form_manager = GetMatchingPendingManager(form); |
if (form_manager) { |
+ if (!password_is_generated) |
+ form_manager->RemovePresavedPassword(); |
form_manager->set_has_generated_password(password_is_generated); |
return; |
} |