Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(695)

Unified Diff: components/autofill/core/browser/autofill_manager.cc

Issue 853523004: Autofill: Set requirements for number of recognized fields in an autofillable form (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 67e7636cd2384468e8361012f5640d57009e0f0b..90c3170282e932c8871ea416f508734fea564c53 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -382,7 +382,11 @@ bool AutofillManager::OnFormSubmitted(const FormData& form,
}
void AutofillManager::OnFormsSeen(const std::vector<FormData>& forms,
+ size_t unowned_form_index,
const TimeTicks& timestamp) {
+ if (unowned_form_index > forms.size())
+ return;
+
if (!IsValidFormDataVector(forms))
return;
@@ -402,7 +406,7 @@ void AutofillManager::OnFormsSeen(const std::vector<FormData>& forms,
forms_loaded_timestamps_[forms[i]] = timestamp;
}
- ParseForms(forms);
+ ParseForms(forms, unowned_form_index);
}
void AutofillManager::OnTextFieldDidChange(const FormData& form,
@@ -1207,14 +1211,17 @@ std::vector<Suggestion> AutofillManager::GetCreditCardSuggestions(
return suggestions;
}
-void AutofillManager::ParseForms(const std::vector<FormData>& forms) {
+void AutofillManager::ParseForms(const std::vector<FormData>& forms,
+ size_t unowned_form_index) {
std::vector<FormStructure*> non_queryable_forms;
- for (std::vector<FormData>::const_iterator iter = forms.begin();
- iter != forms.end(); ++iter) {
- scoped_ptr<FormStructure> form_structure(new FormStructure(*iter));
+ for (size_t i = 0; i < forms.size(); ++i) {
+ scoped_ptr<FormStructure> form_structure(new FormStructure(forms[i]));
if (!form_structure->ShouldBeParsed())
continue;
+ if (i == unowned_form_index)
+ form_structure->set_is_unowned();
+
form_structure->DetermineHeuristicTypes();
if (form_structure->ShouldBeCrowdsourced())

Powered by Google App Engine
This is Rietveld 408576698