| Index: components/autofill/content/renderer/form_autofill_util.cc
|
| diff --git a/components/autofill/content/renderer/form_autofill_util.cc b/components/autofill/content/renderer/form_autofill_util.cc
|
| index c6175c9f22729eb75d442d0be697a370eb8cfbb7..10d6cca9160885f95957ec482b9403489fa5999b 100644
|
| --- a/components/autofill/content/renderer/form_autofill_util.cc
|
| +++ b/components/autofill/content/renderer/form_autofill_util.cc
|
| @@ -54,17 +54,6 @@ using blink::WebVector;
|
| namespace autofill {
|
| namespace {
|
|
|
| -// A bit field mask for FillForm functions to not fill some fields.
|
| -enum FieldFilterMask {
|
| - FILTER_NONE = 0,
|
| - FILTER_DISABLED_ELEMENTS = 1 << 0,
|
| - FILTER_READONLY_ELEMENTS = 1 << 1,
|
| - FILTER_NON_FOCUSABLE_ELEMENTS = 1 << 2,
|
| - FILTER_ALL_NON_EDITIABLE_ELEMENTS = FILTER_DISABLED_ELEMENTS |
|
| - FILTER_READONLY_ELEMENTS |
|
| - FILTER_NON_FOCUSABLE_ELEMENTS,
|
| -};
|
| -
|
| bool IsOptionElement(const WebElement& element) {
|
| CR_DEFINE_STATIC_LOCAL(WebString, kOption, ("option"));
|
| return element.hasHTMLTagName(kOption);
|
| @@ -476,7 +465,7 @@ typedef void (*Callback)(const FormFieldData&,
|
| void ForEachMatchingFormField(const WebFormElement& form_element,
|
| const WebElement& initiating_element,
|
| const FormData& data,
|
| - FieldFilterMask filters,
|
| + bool only_focusable_elements,
|
| bool force_override,
|
| Callback callback) {
|
| std::vector<WebFormControlElement> control_elements;
|
| @@ -519,9 +508,8 @@ void ForEachMatchingFormField(const WebFormElement& form_element,
|
| !element->value().isEmpty()))
|
| continue;
|
|
|
| - if (((filters & FILTER_DISABLED_ELEMENTS) && !element->isEnabled()) ||
|
| - ((filters & FILTER_READONLY_ELEMENTS) && element->isReadOnly()) ||
|
| - ((filters & FILTER_NON_FOCUSABLE_ELEMENTS) && !element->isFocusable()))
|
| + if (!element->isEnabled() || element->isReadOnly() ||
|
| + (only_focusable_elements && !element->isFocusable()))
|
| continue;
|
|
|
| callback(data.fields[i], is_initiating_element, element);
|
| @@ -1001,8 +989,8 @@ void FillForm(const FormData& form, const WebFormControlElement& element) {
|
| ForEachMatchingFormField(form_element,
|
| element,
|
| form,
|
| - FILTER_ALL_NON_EDITIABLE_ELEMENTS,
|
| - false, /* dont force override */
|
| + true, /* only_focusable_elements */
|
| + false, /* don't force override */
|
| &FillFormField);
|
| }
|
|
|
| @@ -1011,25 +999,10 @@ void FillFormIncludingNonFocusableElements(const FormData& form_data,
|
| if (form_element.isNull())
|
| return;
|
|
|
| - FieldFilterMask filter_mask = static_cast<FieldFilterMask>(
|
| - FILTER_DISABLED_ELEMENTS | FILTER_READONLY_ELEMENTS);
|
| - ForEachMatchingFormField(form_element,
|
| - WebInputElement(),
|
| - form_data,
|
| - filter_mask,
|
| - true, /* force override */
|
| - &FillFormField);
|
| -}
|
| -
|
| -void FillFormForAllElements(const FormData& form_data,
|
| - const WebFormElement& form_element) {
|
| - if (form_element.isNull())
|
| - return;
|
| -
|
| ForEachMatchingFormField(form_element,
|
| WebInputElement(),
|
| form_data,
|
| - FILTER_NONE,
|
| + false, /* only_focusable_elements */
|
| true, /* force override */
|
| &FillFormField);
|
| }
|
| @@ -1042,7 +1015,7 @@ void PreviewForm(const FormData& form, const WebFormControlElement& element) {
|
| ForEachMatchingFormField(form_element,
|
| element,
|
| form,
|
| - FILTER_ALL_NON_EDITIABLE_ELEMENTS,
|
| + true, /* only_focusable_elements */
|
| false, /* dont force override */
|
| &PreviewFormField);
|
| }
|
|
|