Chromium Code Reviews| 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..0dfa97145eea68990af038da89f9dd02c5bb08d7 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 fields with user input or it has a new password field and |
|
vabr (Chromium)
2016/04/06 01:31:57
nit: fields -> field
dvadym
2016/04/06 16:02:20
Done.
|
| + // no password field. |
|
vabr (Chromium)
2016/04/06 01:31:57
nit: password field -> current password field
(To
dvadym
2016/04/06 16:02:20
Done.
|
| + 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; |
| } |