| 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 91d3572bc0d4df6142aa02620786d77109b8b78e..b1f3056e69a2516320d86e87637ef981da1e7158 100644
|
| --- a/components/autofill/content/renderer/form_autofill_util.cc
|
| +++ b/components/autofill/content/renderer/form_autofill_util.cc
|
| @@ -63,13 +63,6 @@ enum FieldFilterMask {
|
| FILTER_NON_FOCUSABLE_ELEMENTS,
|
| };
|
|
|
| -RequirementsMask ExtractionRequirements() {
|
| - return base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kRespectAutocompleteOffForAutofill)
|
| - ? REQUIRE_AUTOCOMPLETE
|
| - : REQUIRE_NONE;
|
| -}
|
| -
|
| void TruncateString(base::string16* str, size_t max_length) {
|
| if (str->length() > max_length)
|
| str->resize(max_length);
|
| @@ -144,11 +137,6 @@ bool IsTraversableContainerElement(const WebNode& node) {
|
| tag_name == "TABLE");
|
| }
|
|
|
| -// Check whether the given field satisfies the REQUIRE_AUTOCOMPLETE requirement.
|
| -bool SatisfiesRequireAutocomplete(const WebInputElement& input_element) {
|
| - return input_element.autoComplete();
|
| -}
|
| -
|
| // Returns the colspan for a <td> / <th>. Defaults to 1.
|
| size_t CalculateTableCellColumnSpan(const WebElement& element) {
|
| DCHECK(element.hasHTMLTagName("td") || element.hasHTMLTagName("th"));
|
| @@ -789,7 +777,7 @@ void ForEachMatchingFormField(const WebFormElement& form_element,
|
| bool force_override,
|
| const Callback& callback) {
|
| std::vector<WebFormControlElement> control_elements =
|
| - ExtractAutofillableElementsInForm(form_element, ExtractionRequirements());
|
| + ExtractAutofillableElementsInForm(form_element);
|
| ForEachMatchingFormFieldCommon(&control_elements, initiating_element, data,
|
| filters, force_override, callback);
|
| }
|
| @@ -911,7 +899,6 @@ bool IsWebNodeVisibleImpl(const blink::WebNode& node, const int depth) {
|
|
|
| bool ExtractFieldsFromControlElements(
|
| const WebVector<WebFormControlElement>& control_elements,
|
| - RequirementsMask requirements,
|
| ExtractMask extract_mask,
|
| ScopedVector<FormFieldData>* form_fields,
|
| std::vector<bool>* fields_extracted,
|
| @@ -922,12 +909,6 @@ bool ExtractFieldsFromControlElements(
|
| if (!IsAutofillableElement(control_element))
|
| continue;
|
|
|
| - const WebInputElement* input_element = toWebInputElement(&control_element);
|
| - if (requirements & REQUIRE_AUTOCOMPLETE &&
|
| - IsAutofillableInputElement(input_element) &&
|
| - !SatisfiesRequireAutocomplete(*input_element))
|
| - continue;
|
| -
|
| // Create a new FormFieldData, fill it out and map it to the field's name.
|
| FormFieldData* form_field = new FormFieldData;
|
| WebFormControlElementToFormField(control_element, extract_mask, form_field);
|
| @@ -1016,7 +997,6 @@ bool FormOrFieldsetsToFormData(
|
| const blink::WebFormControlElement* form_control_element,
|
| const std::vector<blink::WebElement>& fieldsets,
|
| const WebVector<WebFormControlElement>& control_elements,
|
| - RequirementsMask requirements,
|
| ExtractMask extract_mask,
|
| FormData* form,
|
| FormFieldData* field) {
|
| @@ -1038,9 +1018,9 @@ bool FormOrFieldsetsToFormData(
|
| // requirements and thus will be in the resulting |form|.
|
| std::vector<bool> fields_extracted(control_elements.size(), false);
|
|
|
| - if (!ExtractFieldsFromControlElements(control_elements, requirements,
|
| - extract_mask, &form_fields,
|
| - &fields_extracted, &element_map)) {
|
| + if (!ExtractFieldsFromControlElements(control_elements, extract_mask,
|
| + &form_fields, &fields_extracted,
|
| + &element_map)) {
|
| return false;
|
| }
|
|
|
| @@ -1149,36 +1129,24 @@ bool IsWebNodeVisible(const blink::WebNode& node) {
|
| }
|
|
|
| std::vector<blink::WebFormControlElement> ExtractAutofillableElementsFromSet(
|
| - const WebVector<WebFormControlElement>& control_elements,
|
| - RequirementsMask requirements) {
|
| + const WebVector<WebFormControlElement>& control_elements) {
|
| std::vector<blink::WebFormControlElement> autofillable_elements;
|
| for (size_t i = 0; i < control_elements.size(); ++i) {
|
| WebFormControlElement element = control_elements[i];
|
| if (!IsAutofillableElement(element))
|
| continue;
|
|
|
| - if (requirements & REQUIRE_AUTOCOMPLETE) {
|
| - // TODO(isherman): WebKit currently doesn't handle the autocomplete
|
| - // attribute for select or textarea elements, but it probably should.
|
| - const WebInputElement* input_element =
|
| - toWebInputElement(&control_elements[i]);
|
| - if (IsAutofillableInputElement(input_element) &&
|
| - !SatisfiesRequireAutocomplete(*input_element))
|
| - continue;
|
| - }
|
| -
|
| autofillable_elements.push_back(element);
|
| }
|
| return autofillable_elements;
|
| }
|
|
|
| std::vector<WebFormControlElement> ExtractAutofillableElementsInForm(
|
| - const WebFormElement& form_element,
|
| - RequirementsMask requirements) {
|
| + const WebFormElement& form_element) {
|
| WebVector<WebFormControlElement> control_elements;
|
| form_element.getFormControlElements(control_elements);
|
|
|
| - return ExtractAutofillableElementsFromSet(control_elements, requirements);
|
| + return ExtractAutofillableElementsFromSet(control_elements);
|
| }
|
|
|
| void WebFormControlElementToFormField(const WebFormControlElement& element,
|
| @@ -1266,7 +1234,6 @@ void WebFormControlElementToFormField(const WebFormControlElement& element,
|
| bool WebFormElementToFormData(
|
| const blink::WebFormElement& form_element,
|
| const blink::WebFormControlElement& form_control_element,
|
| - RequirementsMask requirements,
|
| ExtractMask extract_mask,
|
| FormData* form,
|
| FormFieldData* field) {
|
| @@ -1274,9 +1241,6 @@ bool WebFormElementToFormData(
|
| if (!frame)
|
| return false;
|
|
|
| - if (requirements & REQUIRE_AUTOCOMPLETE && !form_element.autoComplete())
|
| - return false;
|
| -
|
| form->name = GetFormIdentifier(form_element);
|
| form->origin = frame->document().url();
|
| form->action = frame->document().completeURL(form_element.action());
|
| @@ -1293,7 +1257,7 @@ bool WebFormElementToFormData(
|
| std::vector<blink::WebElement> dummy_fieldset;
|
| return FormOrFieldsetsToFormData(&form_element, &form_control_element,
|
| dummy_fieldset, control_elements,
|
| - requirements, extract_mask, form, field);
|
| + extract_mask, form, field);
|
| }
|
|
|
| std::vector<WebFormControlElement>
|
| @@ -1315,8 +1279,7 @@ GetUnownedAutofillableFormFieldElements(
|
| fieldsets->push_back(element);
|
| }
|
| }
|
| - return ExtractAutofillableElementsFromSet(unowned_fieldset_children,
|
| - REQUIRE_NONE);
|
| + return ExtractAutofillableElementsFromSet(unowned_fieldset_children);
|
| }
|
|
|
| bool UnownedFormElementsAndFieldSetsToFormData(
|
| @@ -1324,7 +1287,6 @@ bool UnownedFormElementsAndFieldSetsToFormData(
|
| const std::vector<blink::WebFormControlElement>& control_elements,
|
| const blink::WebFormControlElement* element,
|
| const GURL& origin,
|
| - RequirementsMask requirements,
|
| ExtractMask extract_mask,
|
| FormData* form,
|
| FormFieldData* field) {
|
| @@ -1333,14 +1295,12 @@ bool UnownedFormElementsAndFieldSetsToFormData(
|
| form->is_form_tag = false;
|
|
|
| return FormOrFieldsetsToFormData(nullptr, element, fieldsets,
|
| - control_elements, requirements, extract_mask,
|
| - form, field);
|
| + control_elements, extract_mask, form, field);
|
| }
|
|
|
| bool FindFormAndFieldForFormControlElement(const WebFormControlElement& element,
|
| FormData* form,
|
| - FormFieldData* field,
|
| - RequirementsMask requirements) {
|
| + FormFieldData* field) {
|
| if (!IsAutofillableElement(element))
|
| return false;
|
|
|
| @@ -1354,13 +1314,12 @@ bool FindFormAndFieldForFormControlElement(const WebFormControlElement& element,
|
| std::vector<WebFormControlElement> control_elements =
|
| GetUnownedAutofillableFormFieldElements(document.all(), &fieldsets);
|
| return UnownedFormElementsAndFieldSetsToFormData(
|
| - fieldsets, control_elements, &element, document.url(), requirements,
|
| - extract_mask, form, field);
|
| + fieldsets, control_elements, &element, document.url(), extract_mask,
|
| + form, field);
|
| }
|
|
|
| return WebFormElementToFormData(form_element,
|
| element,
|
| - requirements,
|
| extract_mask,
|
| form,
|
| field);
|
| @@ -1431,8 +1390,7 @@ bool ClearPreviewedFormWithElement(const WebFormControlElement& element,
|
| if (!IsElementInControlElementSet(element, control_elements))
|
| return false;
|
| } else {
|
| - control_elements = ExtractAutofillableElementsInForm(
|
| - form_element, ExtractionRequirements());
|
| + control_elements = ExtractAutofillableElementsInForm(form_element);
|
| }
|
|
|
| for (size_t i = 0; i < control_elements.size(); ++i) {
|
|
|