| Index: chrome/browser/autofill/form_field.cc
|
| diff --git a/chrome/browser/autofill/form_field.cc b/chrome/browser/autofill/form_field.cc
|
| index b8f941bbace5e5027199d471979a97d707da5a15..e722c5f071c6f2b4db93031e1b10cb473538635d 100644
|
| --- a/chrome/browser/autofill/form_field.cc
|
| +++ b/chrome/browser/autofill/form_field.cc
|
| @@ -45,6 +45,10 @@ bool IsSelectField(const std::string& type) {
|
| return type == "select-one";
|
| }
|
|
|
| +bool IsCheckable(const AutofillField* field) {
|
| + return field->is_checkable;
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -54,6 +58,14 @@ void FormField::ParseFormFields(const std::vector<AutofillField*>& fields,
|
| std::vector<const AutofillField*> remaining_fields(fields.size());
|
| std::copy(fields.begin(), fields.end(), remaining_fields.begin());
|
|
|
| + // Ignore checkable fields as they interfere with parsers assuming context.
|
| + // Eg., while parsing address, "Is PO box" checkbox after ADDRESS_LINE1
|
| + // interferes with correctly understanding ADDRESS_LINE2.
|
| + remaining_fields.erase(
|
| + std::remove_if(remaining_fields.begin(), remaining_fields.end(),
|
| + IsCheckable),
|
| + remaining_fields.end());
|
| +
|
| const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| bool parse_new_field_types =
|
| command_line.HasSwitch(switches::kEnableNewAutofillHeuristics);
|
|
|