OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/autofill/credit_card.h" | 5 #include "chrome/browser/autofill/credit_card.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/string_split.h" |
11 #include "base/string_util.h" | 12 #include "base/string_util.h" |
12 #include "base/string_number_conversions.h" | 13 #include "base/string_number_conversions.h" |
13 #include "base/string16.h" | 14 #include "base/string16.h" |
14 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
15 #include "chrome/browser/autofill/autofill_type.h" | 16 #include "chrome/browser/autofill/autofill_type.h" |
16 #include "chrome/browser/autofill/field_types.h" | 17 #include "chrome/browser/autofill/field_types.h" |
17 #include "chrome/common/guid.h" | 18 #include "chrome/common/guid.h" |
18 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
| 20 #include "third_party/WebKit/WebKit/chromium/public/WebRegularExpression.h" |
| 21 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" |
19 | 22 |
20 namespace { | 23 namespace { |
21 | 24 |
22 const char* kCreditCardObfuscationString = "************"; | 25 const char* kCreditCardObfuscationString = "************"; |
23 | 26 |
24 const AutoFillFieldType kAutoFillCreditCardTypes[] = { | 27 const AutoFillFieldType kAutoFillCreditCardTypes[] = { |
25 CREDIT_CARD_NAME, | 28 CREDIT_CARD_NAME, |
26 CREDIT_CARD_NUMBER, | 29 CREDIT_CARD_NUMBER, |
27 CREDIT_CARD_TYPE, | 30 CREDIT_CARD_TYPE, |
28 CREDIT_CARD_EXP_MONTH, | 31 CREDIT_CARD_EXP_MONTH, |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 | 439 |
437 return (sum % 10) == 0; | 440 return (sum % 10) == 0; |
438 } | 441 } |
439 | 442 |
440 bool CreditCard::IsEmpty() const { | 443 bool CreditCard::IsEmpty() const { |
441 FieldTypeSet types; | 444 FieldTypeSet types; |
442 GetAvailableFieldTypes(&types); | 445 GetAvailableFieldTypes(&types); |
443 return types.empty(); | 446 return types.empty(); |
444 } | 447 } |
445 | 448 |
| 449 void CreditCard::SetMonthInputInfo(const string16& value) { |
| 450 // Check if |text| is "yyyy-mm" format first, and check normal month format. |
| 451 WebKit::WebRegularExpression re(WebKit::WebString("^[0-9]{4}\\-[0-9]{1,2}$"), |
| 452 WebKit::WebTextCaseInsensitive); |
| 453 bool match = re.match(WebKit::WebString(StringToLowerASCII(value))) != -1; |
| 454 if (match) { |
| 455 std::vector<string16> year_month; |
| 456 base::SplitString(value, L'-', &year_month); |
| 457 DCHECK_EQ((int)year_month.size(), 2); |
| 458 int num = 0; |
| 459 bool converted = false; |
| 460 converted = base::StringToInt(year_month[0], &num); |
| 461 DCHECK(converted); |
| 462 set_expiration_year(num); |
| 463 converted = base::StringToInt(year_month[1], &num); |
| 464 DCHECK(converted); |
| 465 set_expiration_month(num); |
| 466 } |
| 467 } |
| 468 |
446 string16 CreditCard::ExpirationMonthAsString() const { | 469 string16 CreditCard::ExpirationMonthAsString() const { |
447 if (expiration_month_ == 0) | 470 if (expiration_month_ == 0) |
448 return string16(); | 471 return string16(); |
449 | 472 |
450 string16 month = base::IntToString16(expiration_month_); | 473 string16 month = base::IntToString16(expiration_month_); |
451 if (expiration_month_ >= 10) | 474 if (expiration_month_ >= 10) |
452 return month; | 475 return month; |
453 | 476 |
454 string16 zero = ASCIIToUTF16("0"); | 477 string16 zero = ASCIIToUTF16("0"); |
455 zero.append(month); | 478 zero.append(month); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 // send these strings to WK, which then asks WebKitClientImpl to load the image | 659 // send these strings to WK, which then asks WebKitClientImpl to load the image |
637 // data. | 660 // data. |
638 const char* const kAmericanExpressCard = "americanExpressCC"; | 661 const char* const kAmericanExpressCard = "americanExpressCC"; |
639 const char* const kDinersCard = "dinersCC"; | 662 const char* const kDinersCard = "dinersCC"; |
640 const char* const kDiscoverCard = "discoverCC"; | 663 const char* const kDiscoverCard = "discoverCC"; |
641 const char* const kGenericCard = "genericCC"; | 664 const char* const kGenericCard = "genericCC"; |
642 const char* const kJCBCard = "jcbCC"; | 665 const char* const kJCBCard = "jcbCC"; |
643 const char* const kMasterCard = "masterCardCC"; | 666 const char* const kMasterCard = "masterCardCC"; |
644 const char* const kSoloCard = "soloCC"; | 667 const char* const kSoloCard = "soloCC"; |
645 const char* const kVisaCard = "visaCC"; | 668 const char* const kVisaCard = "visaCC"; |
OLD | NEW |