Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: chrome/browser/autofill/credit_card.cc

Issue 6033010: Support autocompletion for HTMl5 tags:"email", "month" and "tel". (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: unroll tests. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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";
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698