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 f734ef0010b49b527f7f87b5d5222a4e5044c519..d09d2f54c663beba50cd39a05d725c1b7db45072 100644 |
--- a/components/password_manager/core/browser/password_manager.cc |
+++ b/components/password_manager/core/browser/password_manager.cc |
@@ -178,6 +178,26 @@ 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::OnUpdatePresavedPassword( |
+ const autofill::PasswordForm& form) { |
+ DCHECK(client_->IsSavingAndFillingEnabledForCurrentPage()); |
+ PasswordFormManager* form_manager = GetMatchingPendingManager(form); |
+ if (form_manager) { |
+ form_manager->UpdatePresavedPassword(form); |
+ return; |
+ } |
+} |
+ |
void PasswordManager::SetHasGeneratedPasswordForForm( |
password_manager::PasswordManagerDriver* driver, |
const PasswordForm& form, |
@@ -186,6 +206,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; |
} |