diff options
-rw-r--r-- | build/ios/grit_whitelist.txt | 1 | ||||
-rw-r--r-- | chrome/browser/ui/autofill/autofill_popup_controller_impl.cc | 1 | ||||
-rw-r--r-- | components/autofill/content/browser/wallet/wallet_items.cc | 7 | ||||
-rw-r--r-- | components/autofill/core/browser/autofill_manager_unittest.cc | 20 | ||||
-rw-r--r-- | components/autofill/core/browser/credit_card.cc | 111 | ||||
-rw-r--r-- | components/autofill/core/browser/credit_card.h | 9 | ||||
-rw-r--r-- | components/autofill/core/browser/credit_card_unittest.cc | 165 | ||||
-rw-r--r-- | components/autofill/core/browser/personal_data_manager_unittest.cc | 3 | ||||
-rw-r--r-- | components/autofill/core/browser/validation.cc | 21 | ||||
-rw-r--r-- | components/component_strings.grd | 3 | ||||
-rw-r--r-- | webkit/glue/resources/webkit_resources.grd | 1 | ||||
-rw-r--r-- | webkit/glue/webkitplatformsupport_impl.cc | 1 |
12 files changed, 252 insertions, 91 deletions
diff --git a/build/ios/grit_whitelist.txt b/build/ios/grit_whitelist.txt index d8e43dc..f178d8d 100644 --- a/build/ios/grit_whitelist.txt +++ b/build/ios/grit_whitelist.txt @@ -102,7 +102,6 @@ IDS_AUTOFILL_CC_INFOBAR_DENY IDS_AUTOFILL_CC_INFOBAR_TEXT IDS_AUTOFILL_CC_JCB IDS_AUTOFILL_CC_MASTERCARD -IDS_AUTOFILL_CC_SOLO IDS_AUTOFILL_CC_VISA IDS_AUTOFILL_CLEAR_FORM_MENU_ITEM IDS_AUTOFILL_DIALOG_PRIVACY_POLICY_LINK diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc index 35fb0ef..9bd8ed2 100644 --- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc +++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc @@ -61,7 +61,6 @@ const DataResource kDataResources[] = { { "genericCC", IDR_AUTOFILL_CC_GENERIC }, { "jcbCC", IDR_AUTOFILL_CC_JCB }, { "masterCardCC", IDR_AUTOFILL_CC_MASTERCARD }, - { "soloCC", IDR_AUTOFILL_CC_SOLO }, { "visaCC", IDR_AUTOFILL_CC_VISA }, }; diff --git a/components/autofill/content/browser/wallet/wallet_items.cc b/components/autofill/content/browser/wallet/wallet_items.cc index de64dae..30317ac 100644 --- a/components/autofill/content/browser/wallet/wallet_items.cc +++ b/components/autofill/content/browser/wallet/wallet_items.cc @@ -269,8 +269,6 @@ base::string16 WalletItems::MaskedInstrument::TypeAndLastFourDigits() const { display_type = CreditCard::TypeForDisplay(kDiscoverCard); else if (type_ == MASTER_CARD) display_type = CreditCard::TypeForDisplay(kMasterCard); - else if (type_ == SOLO) - display_type = CreditCard::TypeForDisplay(kSoloCard); else if (type_ == VISA) display_type = CreditCard::TypeForDisplay(kVisaCard); else @@ -295,14 +293,11 @@ const gfx::Image& WalletItems::MaskedInstrument::CardIcon() const { idr = IDR_AUTOFILL_CC_MASTERCARD; break; - case SOLO: - idr = IDR_AUTOFILL_CC_SOLO; - break; - case VISA: idr = IDR_AUTOFILL_CC_VISA; break; + case SOLO: case MAESTRO: case SWITCH: case UNKNOWN: diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc index fc29c5f..c35a902 100644 --- a/components/autofill/core/browser/autofill_manager_unittest.cc +++ b/components/autofill/core/browser/autofill_manager_unittest.cc @@ -1180,8 +1180,8 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsEmptyValue) { base::string16 expected_labels[] = { ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765")}; base::string16 expected_icons[] = { - ASCIIToUTF16("visaCC"), - ASCIIToUTF16("genericCC") + ASCIIToUTF16(kVisaCard), + ASCIIToUTF16(kMasterCard) }; int expected_unique_ids[] = { autofill_manager_->GetPackedCreditCardID(4), @@ -1220,7 +1220,7 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsMatchCharacter) { base::string16 expected_values[] = {ASCIIToUTF16("************3456")}; base::string16 expected_labels[] = {ASCIIToUTF16("*3456")}; - base::string16 expected_icons[] = {ASCIIToUTF16("visaCC")}; + base::string16 expected_icons[] = {ASCIIToUTF16(kVisaCard)}; int expected_unique_ids[] = {autofill_manager_->GetPackedCreditCardID(4)}; ExpectSuggestions(page_id, values, labels, icons, unique_ids, kDefaultPageID, arraysize(expected_values), expected_values, @@ -1259,8 +1259,8 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsNonCCNumber) { base::string16 expected_labels[] = { ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765") }; base::string16 expected_icons[] = { - ASCIIToUTF16("visaCC"), - ASCIIToUTF16("genericCC") + ASCIIToUTF16(kVisaCard), + ASCIIToUTF16(kMasterCard) }; int expected_unique_ids[] = { autofill_manager_->GetPackedCreditCardID(4), @@ -1383,9 +1383,9 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsRepeatedObfuscatedNumber) { ASCIIToUTF16("*3456"), }; base::string16 expected_icons[] = { - ASCIIToUTF16("visaCC"), - ASCIIToUTF16("genericCC"), - ASCIIToUTF16("masterCardCC") + ASCIIToUTF16(kVisaCard), + ASCIIToUTF16(kMasterCard), + ASCIIToUTF16(kMasterCard) }; int expected_unique_ids[] = { autofill_manager_->GetPackedCreditCardID(4), @@ -1456,8 +1456,8 @@ TEST_F(AutofillManagerTest, GetAddressAndCreditCardSuggestions) { base::string16 expected_labels2[] = { ASCIIToUTF16("*3456"), ASCIIToUTF16("*8765")}; base::string16 expected_icons2[] = { - ASCIIToUTF16("visaCC"), - ASCIIToUTF16("genericCC") + ASCIIToUTF16(kVisaCard), + ASCIIToUTF16(kMasterCard) }; int expected_unique_ids2[] = { autofill_manager_->GetPackedCreditCardID(4), diff --git a/components/autofill/core/browser/credit_card.cc b/components/autofill/core/browser/credit_card.cc index 1258794..ea41214 100644 --- a/components/autofill/core/browser/credit_card.cc +++ b/components/autofill/core/browser/credit_card.cc @@ -151,8 +151,6 @@ base::string16 CreditCard::TypeForDisplay(const std::string& type) { return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_JCB); if (type == kMasterCard) return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_MASTERCARD); - if (type == kSoloCard) - return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_SOLO); if (type == kVisaCard) return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_VISA); @@ -174,8 +172,6 @@ int CreditCard::IconResourceId(const std::string& type) { return IDR_AUTOFILL_CC_JCB; if (type == kMasterCard) return IDR_AUTOFILL_CC_MASTERCARD; - if (type == kSoloCard) - return IDR_AUTOFILL_CC_SOLO; if (type == kVisaCard) return IDR_AUTOFILL_CC_VISA; @@ -187,85 +183,83 @@ int CreditCard::IconResourceId(const std::string& type) { // static std::string CreditCard::GetCreditCardType(const base::string16& number) { - // Don't check for a specific type if this is not a credit card number. - if (!autofill::IsValidCreditCardNumber(number)) - return kGenericCard; - // Credit card number specifications taken from: - // http://en.wikipedia.org/wiki/Credit_card_numbers and + // http://en.wikipedia.org/wiki/Credit_card_numbers, + // http://www.discovernetwork.com/merchants/images/Merchant_Marketing_PDF.pdf, + // http://www.regular-expressions.info/creditcard.html, and // http://www.beachnet.com/~hstiles/cardtype.html + // + // The last site is currently unavailable, but a cached version remains at + // http://web.archive.org/web/20120923111349/http://www.beachnet.com/~hstiles/cardtype.html + // // Card Type Prefix(es) Length // --------------------------------------------------------------- // Visa 4 13,16 // American Express 34,37 15 - // Diners Club 300-305,2014,2149,36, 14,15 - // Discover Card 6011,65 16 - // JCB 3 16 - // JCB 2131,1800 15 + // Diners Club 300-305,3095,36,38-39 14 + // Discover Card 6011,644-649,65 16 + // JCB 3528-3589 16 // MasterCard 51-55 16 - // Solo (debit card) 6334,6767 16,18,19 - // We need at least 4 digits to work with. - if (number.length() < 4) + // Check for prefixes of length 1. + if (number.empty()) return kGenericCard; - int first_four_digits = 0; - if (!base::StringToInt(number.substr(0, 4), &first_four_digits)) + if (number[0] == '4') + return kVisaCard; + + // Check for prefixes of length 2. + if (number.size() < 2) return kGenericCard; - int first_three_digits = first_four_digits / 10; - int first_two_digits = first_three_digits / 10; - int first_digit = first_two_digits / 10; + int first_two_digits = 0; + if (!base::StringToInt(number.substr(0, 2), &first_two_digits)) + return kGenericCard; - switch (number.length()) { - case 13: - if (first_digit == 4) - return kVisaCard; + if (first_two_digits == 34 || first_two_digits == 37) + return kAmericanExpressCard; - break; - case 14: - if (first_three_digits >= 300 && first_three_digits <= 305) - return kDinersCard; + if (first_two_digits == 36 || + first_two_digits == 38 || + first_two_digits == 39) + return kDinersCard; - if (first_digit == 36) - return kDinersCard; + if (first_two_digits >= 51 && first_two_digits <= 55) + return kMasterCard; - break; - case 15: - if (first_two_digits == 34 || first_two_digits == 37) - return kAmericanExpressCard; + if (first_two_digits == 65) + return kDiscoverCard; - if (first_four_digits == 2131 || first_four_digits == 1800) - return kJCBCard; + // Check for prefixes of length 3. + if (number.size() < 3) + return kGenericCard; - if (first_four_digits == 2014 || first_four_digits == 2149) - return kDinersCard; + int first_three_digits = 0; + if (!base::StringToInt(number.substr(0, 3), &first_three_digits)) + return kGenericCard; - break; - case 16: - if (first_four_digits == 6011 || first_two_digits == 65) - return kDiscoverCard; + if (first_three_digits >= 300 && first_three_digits <= 305) + return kDinersCard; - if (first_four_digits == 6334 || first_four_digits == 6767) - return kSoloCard; + if (first_three_digits >= 644 && first_three_digits <= 649) + return kDiscoverCard; - if (first_two_digits >= 51 && first_two_digits <= 55) - return kMasterCard; + // Check for prefixes of length 4. + if (number.size() < 4) + return kGenericCard; - if (first_digit == 3) - return kJCBCard; + int first_four_digits = 0; + if (!base::StringToInt(number.substr(0, 4), &first_four_digits)) + return kGenericCard; - if (first_digit == 4) - return kVisaCard; + if (first_four_digits == 3095) + return kDinersCard; - break; - case 18: - case 19: - if (first_four_digits == 6334 || first_four_digits == 6767) - return kSoloCard; + if (first_four_digits >= 3528 && first_four_digits <= 3589) + return kJCBCard; - break; - } + if (first_four_digits == 6011) + return kDiscoverCard; return kGenericCard; } @@ -698,7 +692,6 @@ const char* const kDiscoverCard = "discoverCC"; const char* const kGenericCard = "genericCC"; const char* const kJCBCard = "jcbCC"; const char* const kMasterCard = "masterCardCC"; -const char* const kSoloCard = "soloCC"; const char* const kVisaCard = "visaCC"; } // namespace autofill diff --git a/components/autofill/core/browser/credit_card.h b/components/autofill/core/browser/credit_card.h index 9da67f8..98ab9e03 100644 --- a/components/autofill/core/browser/credit_card.h +++ b/components/autofill/core/browser/credit_card.h @@ -37,7 +37,13 @@ class CreditCard : public AutofillDataModel { // The ResourceBundle ID for the appropriate credit card image. static int IconResourceId(const std::string& type); - // The internal representation of credit card type. + // Returns the internal representation of credit card type corresponding to + // the given |number|. The credit card type is determined purely according to + // the Issuer Identification Number (IIN), a.k.a. the "Bank Identification + // Number (BIN)", which is parsed from the relevant prefix of the |number|. + // This function performs no additional validation checks on the |number|. + // Hence, the returned type for both the valid card "4111-1111-1111-1111" and + // the invalid card "4garbage" will be Visa, which has an IIN of 4. static std::string GetCreditCardType(const base::string16& number); // FormGroup: @@ -159,7 +165,6 @@ extern const char* const kDiscoverCard; extern const char* const kGenericCard; extern const char* const kJCBCard; extern const char* const kMasterCard; -extern const char* const kSoloCard; extern const char* const kVisaCard; } // namespace autofill diff --git a/components/autofill/core/browser/credit_card_unittest.cc b/components/autofill/core/browser/credit_card_unittest.cc index d40aa36..b92488d 100644 --- a/components/autofill/core/browser/credit_card_unittest.cc +++ b/components/autofill/core/browser/credit_card_unittest.cc @@ -7,6 +7,7 @@ #include "base/strings/utf_string_conversions.h" #include "components/autofill/core/browser/autofill_common_test.h" #include "components/autofill/core/browser/credit_card.h" +#include "components/autofill/core/browser/validation.h" #include "components/autofill/core/common/form_field_data.h" #include "grit/webkit_resources.h" #include "testing/gtest/include/gtest/gtest.h" @@ -292,7 +293,8 @@ TEST(CreditCardTest, InvalidMastercardNumber) { test::SetCreditCardInfo(&card, "Baby Face Nelson", "5200000000000004", "01", "2010"); - EXPECT_EQ("genericCC", card.type()); + EXPECT_EQ(kMasterCard, card.type()); + EXPECT_FALSE(card.IsComplete()); } // Verify that we preserve exactly what the user typed for credit card numbers. @@ -509,4 +511,165 @@ TEST(CreditCardTest, CreditCardTypeSelectControl) { } } +TEST(CreditCardTest, GetCreditCardType) { + struct { + std::string card_number; + std::string type; + bool is_valid; + } test_cases[] = { + // The relevant sample numbers from + // http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm + { "378282246310005", kAmericanExpressCard, true }, + { "371449635398431", kAmericanExpressCard, true }, + { "378734493671000", kAmericanExpressCard, true }, + { "30569309025904", kDinersCard, true }, + { "38520000023237", kDinersCard, true }, + { "6011111111111117", kDiscoverCard, true }, + { "6011000990139424", kDiscoverCard, true }, + { "3530111333300000", kJCBCard, true }, + { "3566002020360505", kJCBCard, true }, + { "5555555555554444", kMasterCard, true }, + { "5105105105105100", kMasterCard, true }, + { "4111111111111111", kVisaCard, true }, + { "4012888888881881", kVisaCard, true }, + { "4222222222222", kVisaCard, true }, + + // The relevant sample numbers from + // http://auricsystems.com/support-center/sample-credit-card-numbers/ + { "343434343434343", kAmericanExpressCard, true }, + { "371144371144376", kAmericanExpressCard, true }, + { "341134113411347", kAmericanExpressCard, true }, + { "36438936438936", kDinersCard, true }, + { "36110361103612", kDinersCard, true }, + { "36111111111111", kDinersCard, true }, + { "6011016011016011", kDiscoverCard, true }, + { "6011000990139424", kDiscoverCard, true }, + { "6011000000000004", kDiscoverCard, true }, + { "6011000995500000", kDiscoverCard, true }, + { "6500000000000002", kDiscoverCard, true }, + { "3566002020360505", kJCBCard, true }, + { "3528000000000007", kJCBCard, true }, + { "5500005555555559", kMasterCard, true }, + { "5555555555555557", kMasterCard, true }, + { "5454545454545454", kMasterCard, true }, + { "5555515555555551", kMasterCard, true }, + { "5405222222222226", kMasterCard, true }, + { "5478050000000007", kMasterCard, true }, + { "5111005111051128", kMasterCard, true }, + { "5112345112345114", kMasterCard, true }, + { "5115915115915118", kMasterCard, true }, + + // Empty string + { std::string(), kGenericCard, false }, + + // Non-numeric + { "garbage", kGenericCard, false }, + { "4garbage", kVisaCard, false }, + + // Fails Luhn check. + { "4111111111111112", kVisaCard, false }, + + // Invalid length. + { "3434343434343434", kAmericanExpressCard, false }, + { "411111111111116", kVisaCard, false }, + + // Issuer Identification Numbers (IINs) that Chrome recognizes. + { "4", kVisaCard, false }, + { "34", kAmericanExpressCard, false }, + { "37", kAmericanExpressCard, false }, + { "300", kDinersCard, false }, + { "301", kDinersCard, false }, + { "302", kDinersCard, false }, + { "303", kDinersCard, false }, + { "304", kDinersCard, false }, + { "305", kDinersCard, false }, + { "3095", kDinersCard, false }, + { "36", kDinersCard, false }, + { "38", kDinersCard, false }, + { "39", kDinersCard, false }, + { "6011", kDiscoverCard, false }, + { "644", kDiscoverCard, false }, + { "645", kDiscoverCard, false }, + { "646", kDiscoverCard, false }, + { "647", kDiscoverCard, false }, + { "648", kDiscoverCard, false }, + { "649", kDiscoverCard, false }, + { "65", kDiscoverCard, false }, + { "3528", kJCBCard, false }, + { "3531", kJCBCard, false }, + { "3589", kJCBCard, false }, + { "51", kMasterCard, false }, + { "52", kMasterCard, false }, + { "53", kMasterCard, false }, + { "54", kMasterCard, false }, + { "55", kMasterCard, false }, + + // Not enough data to determine an IIN uniquely. + { "3", kGenericCard, false }, + { "30", kGenericCard, false }, + { "309", kGenericCard, false }, + { "35", kGenericCard, false }, + { "5", kGenericCard, false }, + { "6", kGenericCard, false }, + { "60", kGenericCard, false }, + { "601", kGenericCard, false }, + { "64", kGenericCard, false }, + + // Unknown IINs. + { "0", kGenericCard, false }, + { "1", kGenericCard, false }, + { "2", kGenericCard, false }, + { "306", kGenericCard, false }, + { "307", kGenericCard, false }, + { "308", kGenericCard, false }, + { "3091", kGenericCard, false }, + { "3094", kGenericCard, false }, + { "3096", kGenericCard, false }, + { "31", kGenericCard, false }, + { "32", kGenericCard, false }, + { "33", kGenericCard, false }, + { "351", kGenericCard, false }, + { "3527", kGenericCard, false }, + { "359", kGenericCard, false }, + { "50", kGenericCard, false }, + { "56", kGenericCard, false }, + { "57", kGenericCard, false }, + { "58", kGenericCard, false }, + { "59", kGenericCard, false }, + { "600", kGenericCard, false }, + { "602", kGenericCard, false }, + { "603", kGenericCard, false }, + { "604", kGenericCard, false }, + { "605", kGenericCard, false }, + { "606", kGenericCard, false }, + { "607", kGenericCard, false }, + { "608", kGenericCard, false }, + { "609", kGenericCard, false }, + { "61", kGenericCard, false }, + { "62", kGenericCard, false }, + { "63", kGenericCard, false }, + { "640", kGenericCard, false }, + { "641", kGenericCard, false }, + { "642", kGenericCard, false }, + { "643", kGenericCard, false }, + { "66", kGenericCard, false }, + { "67", kGenericCard, false }, + { "68", kGenericCard, false }, + { "69", kGenericCard, false }, + { "7", kGenericCard, false }, + { "8", kGenericCard, false }, + { "9", kGenericCard, false }, + + // Oddball case: Unknown issuer, but valid Luhn check and plausible length. + { "7000700070007000", kGenericCard, true }, + }; + + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { + base::string16 card_number = ASCIIToUTF16(test_cases[i].card_number); + SCOPED_TRACE(card_number); + EXPECT_EQ(test_cases[i].type, CreditCard::GetCreditCardType(card_number)); + EXPECT_EQ(test_cases[i].is_valid, IsValidCreditCardNumber(card_number)); + } +} + } // namespace autofill diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc index 86d0322..aa39d8a 100644 --- a/components/autofill/core/browser/personal_data_manager_unittest.cc +++ b/components/autofill/core/browser/personal_data_manager_unittest.cc @@ -2230,7 +2230,7 @@ TEST_F(PersonalDataManagerTest, GetNonEmptyTypes) { base::MessageLoop::current()->Run(); personal_data_->GetNonEmptyTypes(&non_empty_types); - EXPECT_EQ(25U, non_empty_types.size()); + EXPECT_EQ(26U, non_empty_types.size()); EXPECT_TRUE(non_empty_types.count(NAME_FIRST)); EXPECT_TRUE(non_empty_types.count(NAME_MIDDLE)); EXPECT_TRUE(non_empty_types.count(NAME_MIDDLE_INITIAL)); @@ -2251,6 +2251,7 @@ TEST_F(PersonalDataManagerTest, GetNonEmptyTypes) { EXPECT_TRUE(non_empty_types.count(PHONE_HOME_WHOLE_NUMBER)); EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_NAME)); EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_NUMBER)); + EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_TYPE)); EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_MONTH)); EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_2_DIGIT_YEAR)); EXPECT_TRUE(non_empty_types.count(CREDIT_CARD_EXP_4_DIGIT_YEAR)); diff --git a/components/autofill/core/browser/validation.cc b/components/autofill/core/browser/validation.cc index 139388f..5922b73 100644 --- a/components/autofill/core/browser/validation.cc +++ b/components/autofill/core/browser/validation.cc @@ -63,13 +63,24 @@ bool IsValidCreditCardNumber(const base::string16& text) { base::string16 number = CreditCard::StripSeparators(text); // Credit card numbers are at most 19 digits in length [1]. 12 digits seems to - // be a fairly safe lower-bound [2]. + // be a fairly safe lower-bound [2]. Specific card issuers have more rigidly + // defined sizes. // [1] http://www.merriampark.com/anatomycc.htm // [2] http://en.wikipedia.org/wiki/Bank_card_number - const size_t kMinCreditCardDigits = 12; - const size_t kMaxCreditCardDigits = 19; - if (number.size() < kMinCreditCardDigits || - number.size() > kMaxCreditCardDigits) + const std::string type = CreditCard::GetCreditCardType(text); + if (type == kAmericanExpressCard && number.size() != 15) + return false; + if (type == kDinersCard && number.size() != 14) + return false; + if (type == kDiscoverCard && number.size() != 16) + return false; + if (type == kJCBCard && number.size() != 16) + return false; + if (type == kMasterCard && number.size() != 16) + return false; + if (type == kVisaCard && number.size() != 13 && number.size() != 16) + return false; + if (type == kGenericCard && (number.size() < 12 || number.size() > 19)) return false; // Use the Luhn formula [3] to validate the number. diff --git a/components/component_strings.grd b/components/component_strings.grd index 3b1734d..367cad3 100644 --- a/components/component_strings.grd +++ b/components/component_strings.grd @@ -185,9 +185,6 @@ <message name="IDS_AUTOFILL_CC_MASTERCARD" desc="MasterCard credit card name."> MasterCard </message> - <message name="IDS_AUTOFILL_CC_SOLO" desc="Solo debit card name."> - Solo - </message> <message name="IDS_AUTOFILL_CC_VISA" desc="Visa credit card name."> Visa </message> diff --git a/webkit/glue/resources/webkit_resources.grd b/webkit/glue/resources/webkit_resources.grd index 4a02a86..aaf330d 100644 --- a/webkit/glue/resources/webkit_resources.grd +++ b/webkit/glue/resources/webkit_resources.grd @@ -70,7 +70,6 @@ <structure type="chrome_scaled_image" name="IDR_AUTOFILL_CC_GENERIC" file="cc-generic.png" /> <structure type="chrome_scaled_image" name="IDR_AUTOFILL_CC_JCB" file="jcb.png" /> <structure type="chrome_scaled_image" name="IDR_AUTOFILL_CC_MASTERCARD" file="mastercard.png" /> - <structure type="chrome_scaled_image" name="IDR_AUTOFILL_CC_SOLO" file="solo.png" /> <structure type="chrome_scaled_image" name="IDR_AUTOFILL_CC_VISA" file="visa.png" /> <structure type="chrome_scaled_image" name="IDR_PDF_BUTTON_FTP" file="pdf_button_ftp.png" /> <structure type="chrome_scaled_image" name="IDR_PDF_BUTTON_FTP_HOVER" file="pdf_button_ftp_hover.png" /> diff --git a/webkit/glue/webkitplatformsupport_impl.cc b/webkit/glue/webkitplatformsupport_impl.cc index e84ac58..98f296f 100644 --- a/webkit/glue/webkitplatformsupport_impl.cc +++ b/webkit/glue/webkitplatformsupport_impl.cc @@ -645,7 +645,6 @@ const DataResource kDataResources[] = { { "genericCC", IDR_AUTOFILL_CC_GENERIC, ui::SCALE_FACTOR_100P }, { "jcbCC", IDR_AUTOFILL_CC_JCB, ui::SCALE_FACTOR_100P }, { "masterCardCC", IDR_AUTOFILL_CC_MASTERCARD, ui::SCALE_FACTOR_100P }, - { "soloCC", IDR_AUTOFILL_CC_SOLO, ui::SCALE_FACTOR_100P }, { "visaCC", IDR_AUTOFILL_CC_VISA, ui::SCALE_FACTOR_100P }, { "generatePassword", IDR_PASSWORD_GENERATION_ICON, ui::SCALE_FACTOR_100P }, { "generatePasswordHover", |