| Index: components/autofill/core/browser/credit_card.cc
|
| diff --git a/components/autofill/core/browser/credit_card.cc b/components/autofill/core/browser/credit_card.cc
|
| index 9083b4035b18829a2ae6e12c398c69b8ebce2c8b..29f0101f08966ba2c7416c7b5b133f802e682f37 100644
|
| --- a/components/autofill/core/browser/credit_card.cc
|
| +++ b/components/autofill/core/browser/credit_card.cc
|
| @@ -22,6 +22,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| #include "build/build_config.h"
|
| +#include "components/autofill/core/browser/autofill_data_util.h"
|
| #include "components/autofill/core/browser/autofill_field.h"
|
| #include "components/autofill/core/browser/autofill_type.h"
|
| #include "components/autofill/core/browser/validation.h"
|
| @@ -264,9 +265,15 @@ CreditCard::ServerStatus CreditCard::GetServerStatus() const {
|
| base::string16 CreditCard::GetRawInfo(ServerFieldType type) const {
|
| DCHECK_EQ(CREDIT_CARD, AutofillType(type).group());
|
| switch (type) {
|
| - case CREDIT_CARD_NAME:
|
| + case CREDIT_CARD_NAME_FULL:
|
| return name_on_card_;
|
|
|
| + case CREDIT_CARD_NAME_FIRST:
|
| + return data_util::SplitName(name_on_card_).given;
|
| +
|
| + case CREDIT_CARD_NAME_LAST:
|
| + return data_util::SplitName(name_on_card_).family;
|
| +
|
| case CREDIT_CARD_EXP_MONTH:
|
| return ExpirationMonthAsString();
|
|
|
| @@ -312,7 +319,7 @@ void CreditCard::SetRawInfo(ServerFieldType type,
|
| const base::string16& value) {
|
| DCHECK_EQ(CREDIT_CARD, AutofillType(type).group());
|
| switch (type) {
|
| - case CREDIT_CARD_NAME:
|
| + case CREDIT_CARD_NAME_FULL:
|
| name_on_card_ = value;
|
| break;
|
|
|
| @@ -552,10 +559,9 @@ int CreditCard::Compare(const CreditCard& credit_card) const {
|
| // The following CreditCard field types are the only types we store in the
|
| // WebDB so far, so we're only concerned with matching these types in the
|
| // credit card.
|
| - const ServerFieldType types[] = { CREDIT_CARD_NAME,
|
| - CREDIT_CARD_NUMBER,
|
| - CREDIT_CARD_EXP_MONTH,
|
| - CREDIT_CARD_EXP_4_DIGIT_YEAR };
|
| + const ServerFieldType types[] = {CREDIT_CARD_NAME_FULL, CREDIT_CARD_NUMBER,
|
| + CREDIT_CARD_EXP_MONTH,
|
| + CREDIT_CARD_EXP_4_DIGIT_YEAR};
|
| for (size_t i = 0; i < arraysize(types); ++i) {
|
| int comparison =
|
| GetRawInfo(types[i]).compare(credit_card.GetRawInfo(types[i]));
|
| @@ -633,8 +639,9 @@ bool CreditCard::IsValid() const {
|
| expiration_year_, expiration_month_, base::Time::Now());
|
| }
|
|
|
| +// TODO(crbug.com/589536): Upload new credit card types to the server.
|
| void CreditCard::GetSupportedTypes(ServerFieldTypeSet* supported_types) const {
|
| - supported_types->insert(CREDIT_CARD_NAME);
|
| + supported_types->insert(CREDIT_CARD_NAME_FULL);
|
| supported_types->insert(CREDIT_CARD_NUMBER);
|
| supported_types->insert(CREDIT_CARD_TYPE);
|
| supported_types->insert(CREDIT_CARD_EXP_MONTH);
|
| @@ -763,23 +770,17 @@ bool CreditCard::ConvertMonth(const base::string16& month,
|
|
|
| // So we can compare CreditCards with EXPECT_EQ().
|
| std::ostream& operator<<(std::ostream& os, const CreditCard& credit_card) {
|
| - return os
|
| - << base::UTF16ToUTF8(credit_card.Label())
|
| - << " "
|
| - << credit_card.guid()
|
| - << " "
|
| - << credit_card.origin()
|
| - << " "
|
| - << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_NAME))
|
| - << " "
|
| - << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_TYPE))
|
| - << " "
|
| - << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_NUMBER))
|
| - << " "
|
| - << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_EXP_MONTH))
|
| - << " "
|
| - << base::UTF16ToUTF8(
|
| - credit_card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
| + return os << base::UTF16ToUTF8(credit_card.Label()) << " "
|
| + << credit_card.guid() << " " << credit_card.origin() << " "
|
| + << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_NAME_FULL))
|
| + << " "
|
| + << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_TYPE))
|
| + << " "
|
| + << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_NUMBER))
|
| + << " "
|
| + << base::UTF16ToUTF8(credit_card.GetRawInfo(CREDIT_CARD_EXP_MONTH))
|
| + << " " << base::UTF16ToUTF8(
|
| + credit_card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
| }
|
|
|
| // These values must match the values in WebKitPlatformSupportImpl in
|
|
|