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 dc87799d0c887b0be691584de12d78b1ac649477..749bb23af6ab044b3c14baa952101b0f7b826c6d 100644 |
--- a/components/autofill/content/renderer/password_form_conversion_utils.cc |
+++ b/components/autofill/content/renderer/password_form_conversion_utils.cc |
@@ -364,6 +364,7 @@ bool GetPasswordForm(const SyntheticForm& form, |
// was made readonly by JavaScript before submission. We can do this by |
// checking whether password element was updated not from JavaScript. |
if (input_element->isPasswordField() && |
+ !IsInputElementHidden(input_element) && |
(!input_element->isReadOnly() || |
(nonscript_modified_values && |
nonscript_modified_values->find(*input_element) != |
@@ -637,4 +638,9 @@ bool HasAutocompleteAttributeValue(const blink::WebInputElement& element, |
value_in_lowercase); |
} |
+bool IsInputElementHidden(blink::WebInputElement* input_element) { |
+ // Hidden elements have empty bounding box. |
+ return input_element->boundsInViewportSpace().isEmpty(); |
+} |
+ |
} // namespace autofill |