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 "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/string_split.h" |
10 #include "base/string_util.h" | 11 #include "base/string_util.h" |
11 #include "base/string_number_conversions.h" | 12 #include "base/string_number_conversions.h" |
12 #include "base/string16.h" | 13 #include "base/string16.h" |
13 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
14 #include "chrome/browser/autofill/autofill_type.h" | 15 #include "chrome/browser/autofill/autofill_type.h" |
15 #include "chrome/browser/autofill/field_types.h" | 16 #include "chrome/browser/autofill/field_types.h" |
16 #include "chrome/common/guid.h" | 17 #include "chrome/common/guid.h" |
17 #include "grit/generated_resources.h" | 18 #include "grit/generated_resources.h" |
| 19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRegularExpression.
h" |
| 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
18 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.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, |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 DLOG(ERROR) << "Attempting to set unknown info-type " | 325 DLOG(ERROR) << "Attempting to set unknown info-type " |
323 << type.field_type(); | 326 << type.field_type(); |
324 break; | 327 break; |
325 } | 328 } |
326 } | 329 } |
327 | 330 |
328 const string16 CreditCard::Label() const { | 331 const string16 CreditCard::Label() const { |
329 return label_; | 332 return label_; |
330 } | 333 } |
331 | 334 |
| 335 void CreditCard::SetInfoForMonthInputType(const string16& value) { |
| 336 // Check if |text| is "yyyy-mm" format first, and check normal month format. |
| 337 WebKit::WebRegularExpression re(WebKit::WebString("^[0-9]{4}\\-[0-9]{1,2}$"), |
| 338 WebKit::WebTextCaseInsensitive); |
| 339 bool match = re.match(WebKit::WebString(StringToLowerASCII(value))) != -1; |
| 340 if (match) { |
| 341 std::vector<string16> year_month; |
| 342 base::SplitString(value, L'-', &year_month); |
| 343 DCHECK_EQ((int)year_month.size(), 2); |
| 344 int num = 0; |
| 345 bool converted = false; |
| 346 converted = base::StringToInt(year_month[0], &num); |
| 347 DCHECK(converted); |
| 348 set_expiration_year(num); |
| 349 converted = base::StringToInt(year_month[1], &num); |
| 350 DCHECK(converted); |
| 351 set_expiration_month(num); |
| 352 } |
| 353 } |
| 354 |
332 string16 CreditCard::ObfuscatedNumber() const { | 355 string16 CreditCard::ObfuscatedNumber() const { |
333 if (number().empty()) | 356 if (number().empty()) |
334 return string16(); // No CC number, means empty preview. | 357 return string16(); // No CC number, means empty preview. |
335 string16 result(ASCIIToUTF16(kCreditCardObfuscationString)); | 358 string16 result(ASCIIToUTF16(kCreditCardObfuscationString)); |
336 result.append(last_four_digits()); | 359 result.append(last_four_digits()); |
337 | 360 |
338 return result; | 361 return result; |
339 } | 362 } |
340 | 363 |
341 string16 CreditCard::PreviewSummary() const { | 364 string16 CreditCard::PreviewSummary() const { |
(...skipping 294 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 |