| Index: chrome/browser/autofill/form_field.cc
|
| diff --git a/chrome/browser/autofill/form_field.cc b/chrome/browser/autofill/form_field.cc
|
| index 926d3409a746e8d02d2f319a3f2cb99da3cefb38..df0ef5bff196282f112ae89fa04d62a7d7a2b700 100644
|
| --- a/chrome/browser/autofill/form_field.cc
|
| +++ b/chrome/browser/autofill/form_field.cc
|
| @@ -235,14 +235,14 @@ FormField* FormField::ParseFormField(AutofillScanner* scanner, bool is_ecml) {
|
| }
|
|
|
| // static
|
| -bool FormField::ParseText(AutofillScanner* scanner, const string16& pattern) {
|
| +bool FormField::ParseText(AutofillScanner* scanner, const Pattern& pattern) {
|
| const AutofillField* field;
|
| return ParseText(scanner, pattern, &field);
|
| }
|
|
|
| // static
|
| bool FormField::ParseText(AutofillScanner* scanner,
|
| - const string16& pattern,
|
| + const Pattern& pattern,
|
| const AutofillField** dest) {
|
| return ParseText(scanner, pattern, dest, false);
|
| }
|
| @@ -250,26 +250,31 @@ bool FormField::ParseText(AutofillScanner* scanner,
|
| // static
|
| bool FormField::ParseEmptyText(AutofillScanner* scanner,
|
| const AutofillField** dest) {
|
| - return ParseLabelText(scanner, ASCIIToUTF16("^$"), dest);
|
| + return ParseLabelText(scanner, Pattern(ASCIIToUTF16("^$")), dest);
|
| }
|
|
|
| // static
|
| bool FormField::ParseLabelText(AutofillScanner* scanner,
|
| - const string16& pattern,
|
| + const Pattern& pattern,
|
| const AutofillField** dest) {
|
| return ParseText(scanner, pattern, dest, true);
|
| }
|
|
|
| // static
|
| bool FormField::ParseText(AutofillScanner* scanner,
|
| - const string16& pattern,
|
| + const Pattern& pattern,
|
| const AutofillField** dest,
|
| bool match_label_only) {
|
| if (scanner->IsEnd())
|
| return false;
|
|
|
| const AutofillField* field = scanner->Cursor();
|
| - if (Match(field, pattern, match_label_only)) {
|
| +
|
| + if (!pattern.select_one_is_ok &&
|
| + field->form_control_type == ASCIIToUTF16("select-one"))
|
| + return false;
|
| +
|
| + if (Match(field, pattern.pattern, match_label_only)) {
|
| if (dest)
|
| *dest = field;
|
| scanner->Advance();
|
|
|