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

Unified Diff: components/autofill/browser/wallet/full_wallet.cc

Issue 12815002: requestAutocomplete: Fill |form_structure_| from Online Wallet data (including (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/browser/wallet/full_wallet.cc
diff --git a/components/autofill/browser/wallet/full_wallet.cc b/components/autofill/browser/wallet/full_wallet.cc
index 875ce6c0ba0d713796fb0e04945a1250232c1cb7..be6b0915368c4c961b9f64b1f6db7abe15417d2f 100644
--- a/components/autofill/browser/wallet/full_wallet.cc
+++ b/components/autofill/browser/wallet/full_wallet.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
+#include "base/utf_string_conversions.h"
#include "base/values.h"
namespace {
@@ -123,6 +124,76 @@ scoped_ptr<FullWallet>
required_actions));
}
+const std::string& FullWallet::GetPan() {
+ if (pan_.empty())
+ DecryptCardInfo();
+ return pan_;
+}
+
+const std::string& FullWallet::GetCvn() {
+ if (cvn_.empty())
+ DecryptCardInfo();
+ return cvn_;
+}
+
+const wallet::Address* FullWallet::GetAddress(bool is_billing) const {
+ return is_billing ? billing_address() : shipping_address();
+}
+
+string16 FullWallet::GetInfo(AutofillFieldType type, bool is_billing) {
+ switch (type) {
+ case CREDIT_CARD_NUMBER:
+ DCHECK(is_billing);
+ return UTF8ToUTF16(GetPan());
+
+ case CREDIT_CARD_NAME:
+ DCHECK(is_billing);
+ return billing_address()->recipient_name();
+
+ case CREDIT_CARD_VERIFICATION_CODE:
+ DCHECK(is_billing);
+ return UTF8ToUTF16(GetCvn());
+
+ case CREDIT_CARD_EXP_MONTH:
+ DCHECK(is_billing);
+ return base::IntToString16(expiration_month());
+
+ case CREDIT_CARD_EXP_4_DIGIT_YEAR:
+ case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
+ DCHECK(is_billing);
+ return base::IntToString16(expiration_year());
+
+ case NAME_FULL:
+ return GetAddress(is_billing)->recipient_name();
+
+ case ADDRESS_HOME_LINE1:
+ return GetAddress(is_billing)->address_line_1();
+
+ case ADDRESS_HOME_LINE2:
+ return GetAddress(is_billing)->address_line_2();
+
+ case ADDRESS_HOME_CITY:
+ return GetAddress(is_billing)->locality_name();
+
+ case ADDRESS_HOME_STATE:
+ return GetAddress(is_billing)->administrative_area_name();
+
+ case ADDRESS_HOME_ZIP:
+ return GetAddress(is_billing)->postal_code_number();
+
+ case ADDRESS_HOME_COUNTRY:
+ return UTF8ToUTF16(GetAddress(is_billing)->country_name_code());
+
+ case PHONE_HOME_WHOLE_NUMBER:
+ return GetAddress(is_billing)->phone_number();
+
+ default:
+ NOTREACHED();
+ }
+
+ return string16();
+}
+
bool FullWallet::HasRequiredAction(RequiredAction action) const {
DCHECK(ActionAppliesToFullWallet(action));
return std::find(required_actions_.begin(),
@@ -167,18 +238,6 @@ bool FullWallet::operator!=(const FullWallet& other) const {
return !(*this == other);
}
-const std::string& FullWallet::GetPan() {
- if (pan_.empty())
- DecryptCardInfo();
- return pan_;
-}
-
-const std::string& FullWallet::GetCvn() {
- if (cvn_.empty())
- DecryptCardInfo();
- return cvn_;
-}
-
void FullWallet::DecryptCardInfo() {
std::vector<uint8> operating_data;
// Convert |encrypted_rest_| to bytes so we can decrypt it with |otp|.

Powered by Google App Engine
This is Rietveld 408576698