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

Unified Diff: components/autofill/content/renderer/password_form_conversion_utils.cc

Issue 1863533003: Sending a vote that a Password form looks like a SignUp form. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment fix Created 4 years, 8 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/content/renderer/password_form_conversion_utils.cc
diff --git a/components/autofill/content/renderer/password_form_conversion_utils.cc b/components/autofill/content/renderer/password_form_conversion_utils.cc
index dc6bf7ba20cc386d85fab9c1c101a2ea0c5d8b73..4780a84cbf737c26bc88f5228d07736a57067420 100644
--- a/components/autofill/content/renderer/password_form_conversion_utils.cc
+++ b/components/autofill/content/renderer/password_form_conversion_utils.cc
@@ -389,6 +389,7 @@ bool GetPasswordForm(const SyntheticForm& form,
form, &ignore_invisible_passwords, &ignore_invisible_usernames);
std::string layout_sequence;
layout_sequence.reserve(form.control_elements.size());
+ size_t number_of_non_empty_text_non_password_fields = 0;
for (size_t i = 0; i < form.control_elements.size(); ++i) {
WebFormControlElement control_element = form.control_elements[i];
@@ -403,6 +404,10 @@ bool GetPasswordForm(const SyntheticForm& form,
continue;
layout_sequence.push_back('P');
} else {
+ if (nonscript_modified_values &&
+ nonscript_modified_values->find(*input_element) !=
+ nonscript_modified_values->end())
+ ++number_of_non_empty_text_non_password_fields;
if (element_is_invisible && ignore_invisible_usernames)
continue;
layout_sequence.push_back('N');
@@ -594,6 +599,14 @@ bool GetPasswordForm(const SyntheticForm& form,
password_form->blacklisted_by_user = false;
password_form->type = PasswordForm::TYPE_MANUAL;
+ // The password form is considered that it looks like SignUp form if it has
+ // more than 1 text field with user input or it has a new password field and
+ // no current password field.
+ password_form->does_look_like_signup_form =
+ number_of_non_empty_text_non_password_fields > 1 ||
+ (number_of_non_empty_text_non_password_fields == 1 &&
+ password_form->password_element.empty() &&
+ !password_form->new_password_element.empty());
return true;
}

Powered by Google App Engine
This is Rietveld 408576698