| Index: components/autofill/core/browser/autofill_manager.cc
|
| diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
| index 55f2cf32b9414dfdcbb31c6adc3e258c9fa0b655..95126de421d1ca79cdc115bb0cad82cb4401f1e1 100644
|
| --- a/components/autofill/core/browser/autofill_manager.cc
|
| +++ b/components/autofill/core/browser/autofill_manager.cc
|
| @@ -303,7 +303,7 @@
|
| base::Bind(&AutofillManager::UploadFormDataAsyncCallback,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| base::Owned(submitted_form.release()),
|
| - forms_loaded_timestamps_[form],
|
| + forms_loaded_timestamp_,
|
| initial_interaction_timestamp_,
|
| timestamp));
|
| }
|
| @@ -312,9 +312,15 @@
|
| }
|
|
|
| void AutofillManager::OnFormsSeen(const std::vector<FormData>& forms,
|
| - const TimeTicks& timestamp) {
|
| + const TimeTicks& timestamp,
|
| + autofill::FormsSeenState state) {
|
| if (!IsValidFormDataVector(forms))
|
| return;
|
| +
|
| + bool is_post_document_load = state == autofill::DYNAMIC_FORMS_SEEN;
|
| + // If new forms were added dynamically, treat as a new page.
|
| + if (is_post_document_load)
|
| + Reset();
|
|
|
| if (!driver_->RendererIsAvailable())
|
| return;
|
| @@ -328,10 +334,7 @@
|
| if (!enabled)
|
| return;
|
|
|
| - for (size_t i = 0; i < forms.size(); ++i) {
|
| - forms_loaded_timestamps_[forms[i]] = timestamp;
|
| - }
|
| -
|
| + forms_loaded_timestamp_ = timestamp;
|
| ParseForms(forms);
|
| }
|
|
|
| @@ -820,7 +823,7 @@
|
| user_did_type_ = false;
|
| user_did_autofill_ = false;
|
| user_did_edit_autofilled_field_ = false;
|
| - forms_loaded_timestamps_.clear();
|
| + forms_loaded_timestamp_ = TimeTicks();
|
| initial_interaction_timestamp_ = TimeTicks();
|
| external_delegate_->Reset();
|
| }
|
|
|