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

Side by Side Diff: components/autofill/core/browser/validation.h

Issue 2813203004: [Payments] Show what's missing for incomplete payment methods. (Closed)
Patch Set: Initial Created 3 years, 8 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_
6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_
7 7
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/string_piece.h" 9 #include "base/strings/string_piece.h"
10 #include "components/autofill/core/browser/field_types.h" 10 #include "components/autofill/core/browser/field_types.h"
11 11
12 namespace base { 12 namespace base {
13 class Time; 13 class Time;
14 } // namespace base 14 } // namespace base
15 15
16 namespace autofill { 16 namespace autofill {
17 17
18 class CreditCard;
19
18 // Constants for the length of a CVC. 20 // Constants for the length of a CVC.
19 static const size_t GENERAL_CVC_LENGTH = 3; 21 static const size_t GENERAL_CVC_LENGTH = 3;
20 static const size_t AMEX_CVC_LENGTH = 4; 22 static const size_t AMEX_CVC_LENGTH = 4;
21 23
22 // Returns true if |year| and |month| describe a date later than |now|. 24 // Returns true if |year| and |month| describe a date later than |now|.
23 // |year| must have 4 digits. 25 // |year| must have 4 digits.
24 bool IsValidCreditCardExpirationDate(int year, 26 bool IsValidCreditCardExpirationDate(int year,
25 int month, 27 int month,
26 const base::Time& now); 28 const base::Time& now);
27 29
28 // Returns true if |text| looks like a valid credit card number. 30 // Returns true if |text| looks like a valid credit card number.
29 // Uses the Luhn formula to validate the number. 31 // Uses the Luhn formula to validate the number.
30 bool IsValidCreditCardNumber(const base::string16& text); 32 bool IsValidCreditCardNumber(const base::string16& text);
31 33
32 // Returns true if |code| looks like a valid credit card security code 34 // Returns true if |code| looks like a valid credit card security code
33 // for the given credit card type. 35 // for the given credit card type.
34 bool IsValidCreditCardSecurityCode(const base::string16& code, 36 bool IsValidCreditCardSecurityCode(const base::string16& code,
35 const base::StringPiece card_type); 37 const base::StringPiece card_type);
36 38
37 // Returns true if |text| is a supported card type and a valid credit card 39 // Returns true if |text| is a supported card type and a valid credit card
38 // number. |error_message| can't be null and will be filled with the appropriate 40 // number. |error_message| can't be null and will be filled with the appropriate
39 // error message. 41 // error message.
40 bool IsValidCreditCardNumberForBasicCardNetworks( 42 bool IsValidCreditCardNumberForBasicCardNetworks(
41 const base::string16& text, 43 const base::string16& text,
42 const std::set<std::string>& supported_basic_card_networks, 44 const std::set<std::string>& supported_basic_card_networks,
43 base::string16* error_message); 45 base::string16* error_message);
44 46
47 // Returns whether |card| has a non-empty number and cardholder name. Server
48 // cards will have a non-empty number.
49 bool CreditCardHasNumberAndName(const autofill::CreditCard& card,
50 const std::string& app_locale);
51
52 // A card is complete for Payment Request if it's not expired, its number is not
53 // empty (a server card fills this condition) and there is a cardholder name.
54 // If there is missing information, will return false and fill |missing_info|
55 // with a proper string for display. |missing_info| can be nullptr if the caller
56 // doesn't care about the missing info.
57 // TODO(crbug.com/709776): Check for billing address association.
58 bool IsCompleteForPaymentRequest(const CreditCard& credit_card,
59 const std::string& app_locale,
60 base::string16* missing_info);
61
45 // Returns true if |text| looks like a valid e-mail address. 62 // Returns true if |text| looks like a valid e-mail address.
46 bool IsValidEmailAddress(const base::string16& text); 63 bool IsValidEmailAddress(const base::string16& text);
47 64
48 // Returns true if |text| is a valid US state name or abbreviation. It is case 65 // Returns true if |text| is a valid US state name or abbreviation. It is case
49 // insensitive. Valid for US states only. 66 // insensitive. Valid for US states only.
50 bool IsValidState(const base::string16& text); 67 bool IsValidState(const base::string16& text);
51 68
52 // Returns whether the number contained in |text| is valid for the specified 69 // Returns whether the number contained in |text| is valid for the specified
53 // |country_code|. Callers should cache the result as the parsing is expensive. 70 // |country_code|. Callers should cache the result as the parsing is expensive.
54 bool IsValidPhoneNumber(const base::string16& text, 71 bool IsValidPhoneNumber(const base::string16& text,
(...skipping 15 matching lines...) Expand all
70 // Returns the expected CVC length based on the |card_type|. 87 // Returns the expected CVC length based on the |card_type|.
71 size_t GetCvcLengthForCardType(const base::StringPiece card_type); 88 size_t GetCvcLengthForCardType(const base::StringPiece card_type);
72 89
73 // Returns true if |value| appears to be a UPI Virtual Payment Address. 90 // Returns true if |value| appears to be a UPI Virtual Payment Address.
74 // https://upipayments.co.in/virtual-payment-address-vpa/ 91 // https://upipayments.co.in/virtual-payment-address-vpa/
75 bool IsUPIVirtualPaymentAddress(const base::string16& value); 92 bool IsUPIVirtualPaymentAddress(const base::string16& value);
76 93
77 } // namespace autofill 94 } // namespace autofill
78 95
79 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_ 96 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_VALIDATION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698