Commit d0f1a1a9 authored by Dominic Battre's avatar Dominic Battre Committed by Commit Bot

Fix gift card matching

The matcher for gift cards only applied to labels and names of
<input type="text"> elements. This CL expands the matching to
number and telephone fields as these may be used to enter gift
card numbers.

Bug: 1087428
Change-Id: I2b3026d5ebcea3c9d8b9253e74c22e2e4309425d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2220089Reviewed-by: default avatarMoe Ahmadi <mahmadi@chromium.org>
Reviewed-by: default avatarJavier Ernesto Flores Robles <javierrobles@chromium.org>
Reviewed-by: default avatarMatthias Körber <koerber@google.com>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#773499}
parent f2ef1ef0
......@@ -391,20 +391,25 @@ bool CreditCardField::IsGiftCardField(AutofillScanner* scanner,
if (scanner->IsEnd())
return false;
const int kMatchFieldTypes =
MATCH_DEFAULT | MATCH_NUMBER | MATCH_TELEPHONE | MATCH_SEARCH;
size_t saved_cursor = scanner->SaveCursor();
if (ParseField(scanner, base::UTF8ToUTF16(kDebitCardRe), nullptr,
{log_manager, "kDebitCardRe"})) {
if (ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kDebitCardRe),
kMatchFieldTypes, nullptr,
{log_manager, "kDebitCardRe"})) {
scanner->RewindTo(saved_cursor);
return false;
}
if (ParseField(scanner, base::UTF8ToUTF16(kDebitGiftCardRe), nullptr,
{log_manager, "kDebitGiftCardRe"})) {
if (ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kDebitGiftCardRe),
kMatchFieldTypes, nullptr,
{log_manager, "kDebitGiftCardRe"})) {
scanner->RewindTo(saved_cursor);
return false;
}
return ParseField(scanner, base::UTF8ToUTF16(kGiftCardRe), nullptr,
{log_manager, "kGiftCardRe"});
return ParseFieldSpecifics(scanner, base::UTF8ToUTF16(kGiftCardRe),
kMatchFieldTypes, nullptr,
{log_manager, "kGiftCardRe"});
}
CreditCardField::CreditCardField(LogManager* log_manager)
......
HTML_TYPE_GIVEN_NAME | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].firstName | First name*Please give us the name of one of the people staying in this room. | | room0-default-default
HTML_TYPE_FAMILY_NAME | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].lastName | Last name* | | room0-default-default
HTML_TYPE_TEL | bookingContact.contactDetails.phoneNumber | Cell phone number*We’ll only contact you in an emergency | | contact-default-default
HTML_TYPE_EMAIL | bookingContact.contactDetails.emailAddress | Email address*We’ll send your confirmation email to this address | | contact-default-default
UNKNOWN_TYPE | bookingContact.contactDetails.specialDeal | Check this box if you would like to receive our Hotels.com special offers email newsletter containing great hotel promotions. | true | -default-default
UNKNOWN_TYPE | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].specialRequests | Special requests | | -default-default
UNKNOWN_TYPE | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].accessibilityIds[0] | Accessible bathroom | 2420 | -default-default
UNKNOWN_TYPE | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].accessibilityIds[1] | In-room accessibility | 2423 | -default-default
UNKNOWN_TYPE | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].accessibilityIds[2] | Roll-in shower | 2421 | -default-default
UNKNOWN_TYPE | shoppingCartOrderDetails.travelDetails[0].hotelData.roomDetails[0].roomType.roomOccupations[0].accessibilityIds[3] | Wheelchair accessible parking | 2422 | -default-default
UNKNOWN_TYPE | payment-details-selector | Credit / Debit card | CREDITCARD | -default-default
UNKNOWN_TYPE | payment-details-selector | PayPal | PAYPAL | -default-default
UNKNOWN_TYPE | payment-details-selector | Gift Card | GIFTCARD | -default-default
UNKNOWN_TYPE | payment-details-selector | Apple Pay | APPLEPAY | -default-default
UNKNOWN_TYPE | giftCardNumber | Enter gift card number (16 digits) | | -default-default
# This is undesirable and should be unknown type.
ADDRESS_HOME_ZIP | giftCardPinCode | Enter gift card PIN code (8 digits)If your gift card has a silver panel, scratch it off to reveal the code | | -default-default
UNKNOWN_TYPE | paymentAmount | Enter the amount you`d like to pay with your gift card | | -default-default
UNKNOWN_TYPE | payments.submittedPayments[0].storedPayment.spsId | Saved card | | stored-default-default
HTML_TYPE_CREDIT_CARD_NAME_FIRST | payments.submittedPayments[0].billingDetailsForm.billingNameForm.billingFirstName | First name* | | -default-cc
HTML_TYPE_CREDIT_CARD_NAME_LAST | payments.submittedPayments[0].billingDetailsForm.billingNameForm.billingLastName | Last name* | | -default-cc
HTML_TYPE_CREDIT_CARD_TYPE | payments.submittedPayments[0].paymentIdentifier | Card type* | | -default-cc
HTML_TYPE_CREDIT_CARD_NUMBER | payments.submittedPayments[0].cardNumber | Credit card number* | | -default-cc
HTML_TYPE_CREDIT_CARD_EXP_MONTH | payments.submittedPayments[0].expiryMonth | Expiry month* | | -default-cc
HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR | payments.submittedPayments[0].expiryYear | Expiry year* | | -default-cc
HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE | payments.submittedPayments[0].securityCode | Security code* | | -default-cc
UNKNOWN_TYPE | payments.submittedPayments[0].paymentStoringFormFields.hasToSavePayment | Save this card | true | -default-default
UNKNOWN_TYPE | payments.submittedPayments[0].paymentStoringFormFields.nickName | Card Nickname  (optional) | | -default-default
HTML_TYPE_COUNTRY_CODE | payments.submittedPayments[0].billingDetailsForm.billingAddressForm.billingCountry | Country* | US | -billing-default
HTML_TYPE_POSTAL_CODE | payments.submittedPayments[0].billingDetailsForm.billingAddressForm.billingPostalCode | ZIP codeWe’ll use this to verify your credit card details | | -billing-default
......@@ -350,6 +350,7 @@ bundle_data("unit_tests_bundle_data") {
"//components/test/data/autofill/heuristics/input/160_credit_card_ignore_birthday_fields.html",
"//components/test/data/autofill/heuristics/input/161_i18n_tr.html",
"//components/test/data/autofill/heuristics/input/162_i18n_tr2.html",
"//components/test/data/autofill/heuristics/input/163_giftcard_hotels.com.html",
"//components/test/data/autofill/heuristics/output/000_i18n_de.out",
"//components/test/data/autofill/heuristics/output/001_i18n_de2.out",
"//components/test/data/autofill/heuristics/output/002_i18n_en.out",
......@@ -512,6 +513,7 @@ bundle_data("unit_tests_bundle_data") {
"//components/test/data/autofill/heuristics/output/160_credit_card_ignore_birthday_fields.out",
"//components/test/data/autofill/heuristics/output/161_i18n_tr.out",
"//components/test/data/autofill/heuristics/output/162_i18n_tr2.out",
"//components/test/data/autofill/heuristics/output/163_giftcard_hotels.com.out",
]
outputs = [ "{{bundle_resources_dir}}/" +
"{{source_root_relative_dir}}/{{source_file_part}}" ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment