| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/autofill/browser/credit_card.h" | 5 #include "components/autofill/browser/credit_card.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <ostream> | 9 #include <ostream> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 set_origin(credit_card.origin()); | 491 set_origin(credit_card.origin()); |
| 492 } | 492 } |
| 493 | 493 |
| 494 bool CreditCard::UpdateFromImportedCard(const CreditCard& imported_card, | 494 bool CreditCard::UpdateFromImportedCard(const CreditCard& imported_card, |
| 495 const std::string& app_locale) { | 495 const std::string& app_locale) { |
| 496 if (this->GetInfo(CREDIT_CARD_NUMBER, app_locale) != | 496 if (this->GetInfo(CREDIT_CARD_NUMBER, app_locale) != |
| 497 imported_card.GetInfo(CREDIT_CARD_NUMBER, app_locale)) { | 497 imported_card.GetInfo(CREDIT_CARD_NUMBER, app_locale)) { |
| 498 return false; | 498 return false; |
| 499 } | 499 } |
| 500 | 500 |
| 501 DCHECK(!imported_card.IsVerified()); | 501 // Heuristically aggregated data should never overwrite verified data. |
| 502 if (this->IsVerified()) | 502 // Instead, discard any heuristically aggregated credit cards that disagree |
| 503 // with explicitly entered data, so that the UI is not cluttered with |
| 504 // duplicate cards. |
| 505 if (this->IsVerified() && !imported_card.IsVerified()) |
| 503 return true; | 506 return true; |
| 504 | 507 |
| 508 set_origin(imported_card.origin()); |
| 509 |
| 505 // Note that the card number is intentionally not updated, so as to preserve | 510 // Note that the card number is intentionally not updated, so as to preserve |
| 506 // any formatting (i.e. separator characters). Since the card number is not | 511 // any formatting (i.e. separator characters). Since the card number is not |
| 507 // updated, there is no reason to update the card type, either. | 512 // updated, there is no reason to update the card type, either. |
| 508 if (!imported_card.name_on_card_.empty()) | 513 if (!imported_card.name_on_card_.empty()) |
| 509 name_on_card_ = imported_card.name_on_card_; | 514 name_on_card_ = imported_card.name_on_card_; |
| 510 | 515 |
| 511 // The expiration date for |imported_card| should always be set. | 516 // The expiration date for |imported_card| should always be set. |
| 512 DCHECK(imported_card.expiration_month_ && imported_card.expiration_year_); | 517 DCHECK(imported_card.expiration_month_ && imported_card.expiration_year_); |
| 513 expiration_month_ = imported_card.expiration_month_; | 518 expiration_month_ = imported_card.expiration_month_; |
| 514 expiration_year_ = imported_card.expiration_year_; | 519 expiration_year_ = imported_card.expiration_year_; |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 const char* const kAmericanExpressCard = "americanExpressCC"; | 687 const char* const kAmericanExpressCard = "americanExpressCC"; |
| 683 const char* const kDinersCard = "dinersCC"; | 688 const char* const kDinersCard = "dinersCC"; |
| 684 const char* const kDiscoverCard = "discoverCC"; | 689 const char* const kDiscoverCard = "discoverCC"; |
| 685 const char* const kGenericCard = "genericCC"; | 690 const char* const kGenericCard = "genericCC"; |
| 686 const char* const kJCBCard = "jcbCC"; | 691 const char* const kJCBCard = "jcbCC"; |
| 687 const char* const kMasterCard = "masterCardCC"; | 692 const char* const kMasterCard = "masterCardCC"; |
| 688 const char* const kSoloCard = "soloCC"; | 693 const char* const kSoloCard = "soloCC"; |
| 689 const char* const kVisaCard = "visaCC"; | 694 const char* const kVisaCard = "visaCC"; |
| 690 | 695 |
| 691 } // namespace autofill | 696 } // namespace autofill |
| OLD | NEW |