Index: chrome/browser/autofill/credit_card_field.cc |
diff --git a/chrome/browser/autofill/credit_card_field.cc b/chrome/browser/autofill/credit_card_field.cc |
index b322574e4af05d168c75c8dd2a9fd88b2348919b..d65799f63b5564f140f1d4d870187b7caf4a2d5c 100644 |
--- a/chrome/browser/autofill/credit_card_field.cc |
+++ b/chrome/browser/autofill/credit_card_field.cc |
@@ -68,7 +68,9 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
} |
} |
- if (ParseText(scanner, name_pattern, &credit_card_field->cardholder_)) |
+ if (ParseText(scanner, name_pattern, |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT, |
+ &credit_card_field->cardholder_)) |
continue; |
// As a hard-coded hack for Expedia's billing pages (expedia_checkout.html |
@@ -77,8 +79,11 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
// and "clnm". |
scanner->SaveCursor(); |
const AutofillField* first; |
- if (!is_ecml && ParseText(scanner, ASCIIToUTF16("^cfnm"), &first) && |
+ if (!is_ecml && ParseText(scanner, ASCIIToUTF16("^cfnm"), |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT, |
+ &first) && |
ParseText(scanner, ASCIIToUTF16("^clnm"), |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT, |
&credit_card_field->cardholder_last_)) { |
credit_card_field->cardholder_ = first; |
continue; |
@@ -98,7 +103,8 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_CVC_RE); |
if (!credit_card_field->verification_ && |
- ParseText(scanner, pattern, &credit_card_field->verification_)) |
+ ParseText(scanner, pattern, MATCH_NAME | MATCH_LABEL | MATCH_TEXT, |
+ &credit_card_field->verification_)) |
continue; |
// TODO(jhawkins): Parse the type select control. |
@@ -109,7 +115,8 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_NUMBER_RE); |
if (!credit_card_field->number_ && |
- ParseText(scanner, pattern, &credit_card_field->number_)) |
+ ParseText(scanner, pattern, MATCH_NAME | MATCH_LABEL | MATCH_TEXT, |
+ &credit_card_field->number_)) |
continue; |
if (LowerCaseEqualsASCII(scanner->Cursor()->form_control_type, "month")) { |
@@ -135,13 +142,16 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
if ((!credit_card_field->expiration_month_ || |
credit_card_field->expiration_month_->IsEmpty()) && |
- ParseText(scanner, pattern, &credit_card_field->expiration_month_)) { |
+ ParseText(scanner, pattern, |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT | MATCH_SELECT, |
+ &credit_card_field->expiration_month_)) { |
if (is_ecml) |
pattern = GetEcmlPattern(kEcmlCardExpireYear); |
else |
pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_EXPIRATION_DATE_RE); |
if (!ParseText(scanner, pattern, |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT | MATCH_SELECT, |
&credit_card_field->expiration_year_)) { |
scanner->Rewind(); |
return NULL; |
@@ -150,7 +160,9 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
} |
} |
- if (ParseText(scanner, GetEcmlPattern(kEcmlCardExpireDay))) |
+ if (ParseText(scanner, |
+ GetEcmlPattern(kEcmlCardExpireDay), |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT | MATCH_SELECT)) |
continue; |
// Some pages (e.g. ExpediaBilling.html) have a "card description" |
@@ -159,7 +171,8 @@ CreditCardField* CreditCardField::Parse(AutofillScanner* scanner, |
// start with "card", under the assumption that they are related to |
// the credit card section being processed but are uninteresting to us. |
if (ParseText(scanner, |
- l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_IGNORED_RE))) |
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_IGNORED_RE), |
+ MATCH_NAME | MATCH_LABEL | MATCH_TEXT)) |
continue; |
break; |