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

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

Issue 1377923002: [Autofill] Only query for newly parsed forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean Created 5 years, 3 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 e667d61e77b0877e439fd3c2c534e10e8d2e369a..296d5d4fc7b5eeaba241a84961e2b77e5d01dcd2 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -1398,6 +1398,7 @@ void AutofillManager::ParseForms(const std::vector<FormData>& forms) {
return;
std::vector<FormStructure*> non_queryable_forms;
+ std::vector<FormStructure*> queryable_forms;
for (const FormData& form : forms) {
scoped_ptr<FormStructure> form_structure(new FormStructure(form));
@@ -1411,24 +1412,23 @@ void AutofillManager::ParseForms(const std::vector<FormData>& forms) {
form_structure->DetermineHeuristicTypes();
- if (form_structure->ShouldBeCrowdsourced()) {
+ FormStructure* structure = form_structure.release();
Evan Stade 2015/09/29 22:06:45 This ownership model is super brittle and needs to
Mathieu 2015/09/30 13:09:54 SendAutofillTypePredictionsToRenderer does not tak
+ form_structures_.push_back(structure);
+ if (structure->ShouldBeCrowdsourced()) {
AutofillMetrics::LogPasswordFormQueryVolume(
AutofillMetrics::CURRENT_QUERY);
- form_structures_.push_back(form_structure.release());
+ queryable_forms.push_back(structure);
} else {
- non_queryable_forms.push_back(form_structure.release());
+ non_queryable_forms.push_back(structure);
}
}
- if (!form_structures_.empty() && download_manager_) {
+ if (!queryable_forms.empty() && download_manager_) {
// Query the server if at least one of the forms was parsed.
- download_manager_->StartQueryRequest(form_structures_.get());
+ download_manager_->StartQueryRequest(queryable_forms);
}
- for (FormStructure* structure : non_queryable_forms)
- form_structures_.push_back(structure);
-
- if (!form_structures_.empty()) {
+ if (!queryable_forms.empty() || !non_queryable_forms.empty()) {
AutofillMetrics::LogUserHappinessMetric(AutofillMetrics::FORMS_LOADED);
#if defined(OS_IOS)
// Log this from same location as AutofillMetrics::FORMS_LOADED to ensure

Powered by Google App Engine
This is Rietveld 408576698