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

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: Fix merge error. Created 9 years, 10 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
« no previous file with comments | « chrome/browser/autofill/credit_card.h ('k') | chrome/browser/autofill/credit_card_field.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "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
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
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
« no previous file with comments | « chrome/browser/autofill/credit_card.h ('k') | chrome/browser/autofill/credit_card_field.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698