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 9d9613ed309e0a9f3300275661f2f9523ce4d8fe..acbfa64568e9d65e95d452be1e589108188ebd90 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -217,6 +217,7 @@ PasswordFormManager::PasswordFormManager( |
is_new_login_(true), |
has_autofilled_(false), |
has_generated_password_(false), |
+ generated_password_changed_(false), |
is_manual_generation_(false), |
generation_popup_was_shown_(false), |
form_classifier_outcome_(kNoOutcome), |
@@ -441,6 +442,25 @@ void PasswordFormManager::Update( |
old_primary_key ? &old_primary_key.value() : nullptr); |
} |
+void PasswordFormManager::PresaveGeneratedPassword( |
+ const autofill::PasswordForm& form) { |
+ form_saver()->PresaveGeneratedPassword(form); |
+ metrics_recorder_.SetHasGeneratedPassword(true); |
+ if (has_generated_password_) { |
+ generated_password_changed_ = true; |
+ } else { |
+ SetHasGeneratedPassword(true); |
+ generated_password_changed_ = false; |
+ } |
+} |
+ |
+void PasswordFormManager::PasswordNoLongerGenerated() { |
+ DCHECK(has_generated_password_); |
+ form_saver()->RemovePresavedPassword(); |
+ SetHasGeneratedPassword(false); |
+ generated_password_changed_ = false; |
+} |
+ |
void PasswordFormManager::SetSubmittedForm(const autofill::PasswordForm& form) { |
bool is_change_password_form = |
!form.new_password_value.empty() && !form.password_value.empty(); |
@@ -859,6 +879,7 @@ void PasswordFormManager::AddGeneratedVote( |
autofill::AutofillField* field = form_structure->field(i); |
if (field->name == generation_element_) { |
field->set_generation_type(type); |
+ field->set_generated_password_changed(generated_password_changed_); |
break; |
} |
} |
@@ -1194,10 +1215,10 @@ void PasswordFormManager::OnNeverClicked() { |
} |
void PasswordFormManager::OnNoInteraction(bool is_update) { |
- if (is_update) |
+ if (is_update) { |
UploadPasswordVote(observed_form_, autofill::PROBABLY_NEW_PASSWORD, |
std::string()); |
- else { |
+ } else { |
UploadPasswordVote(pending_credentials_, autofill::UNKNOWN_TYPE, |
std::string()); |
} |