OLD | NEW |
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 #include "components/autofill/content/browser/wallet/full_wallet.h" | 5 #include "components/autofill/content/browser/wallet/full_wallet.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 iin_(iin), | 35 iin_(iin), |
36 encrypted_rest_(encrypted_rest), | 36 encrypted_rest_(encrypted_rest), |
37 billing_address_(billing_address.Pass()), | 37 billing_address_(billing_address.Pass()), |
38 shipping_address_(shipping_address.Pass()), | 38 shipping_address_(shipping_address.Pass()), |
39 required_actions_(required_actions) { | 39 required_actions_(required_actions) { |
40 DCHECK(required_actions_.size() > 0 || billing_address_.get()); | 40 DCHECK(required_actions_.size() > 0 || billing_address_.get()); |
41 } | 41 } |
42 | 42 |
43 FullWallet::~FullWallet() {} | 43 FullWallet::~FullWallet() {} |
44 | 44 |
| 45 // static |
45 scoped_ptr<FullWallet> | 46 scoped_ptr<FullWallet> |
46 FullWallet::CreateFullWallet(const DictionaryValue& dictionary) { | 47 FullWallet::CreateFullWallet(const DictionaryValue& dictionary) { |
47 const ListValue* required_actions_list; | 48 const ListValue* required_actions_list; |
48 std::vector<RequiredAction> required_actions; | 49 std::vector<RequiredAction> required_actions; |
49 if (dictionary.GetList("required_action", &required_actions_list)) { | 50 if (dictionary.GetList("required_action", &required_actions_list)) { |
50 for (size_t i = 0; i < required_actions_list->GetSize(); ++i) { | 51 for (size_t i = 0; i < required_actions_list->GetSize(); ++i) { |
51 std::string action_string; | 52 std::string action_string; |
52 if (required_actions_list->GetString(i, &action_string)) { | 53 if (required_actions_list->GetString(i, &action_string)) { |
53 RequiredAction action = ParseRequiredActionFromString(action_string); | 54 RequiredAction action = ParseRequiredActionFromString(action_string); |
54 if (!ActionAppliesToFullWallet(action)) { | 55 if (!ActionAppliesToFullWallet(action)) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 | 121 |
121 return scoped_ptr<FullWallet>(new FullWallet(expiration_month, | 122 return scoped_ptr<FullWallet>(new FullWallet(expiration_month, |
122 expiration_year, | 123 expiration_year, |
123 iin, | 124 iin, |
124 encrypted_rest, | 125 encrypted_rest, |
125 billing_address.Pass(), | 126 billing_address.Pass(), |
126 shipping_address.Pass(), | 127 shipping_address.Pass(), |
127 required_actions)); | 128 required_actions)); |
128 } | 129 } |
129 | 130 |
| 131 // static |
| 132 scoped_ptr<FullWallet> |
| 133 FullWallet::CreateFullWalletFromClearText( |
| 134 int expiration_month, |
| 135 int expiration_year, |
| 136 const std::string& pan, |
| 137 const std::string& cvn, |
| 138 scoped_ptr<Address> billing_address, |
| 139 scoped_ptr<Address> shipping_address) { |
| 140 DCHECK(billing_address); |
| 141 DCHECK(!pan.empty()); |
| 142 DCHECK(!cvn.empty()); |
| 143 |
| 144 scoped_ptr<FullWallet> wallet(new FullWallet( |
| 145 expiration_month, |
| 146 expiration_year, |
| 147 std::string(), // no iin -- clear text pan/cvn are set below. |
| 148 std::string(), // no encrypted_rest -- clear text pan/cvn are set below. |
| 149 billing_address.Pass(), |
| 150 shipping_address.Pass(), |
| 151 std::vector<RequiredAction>())); // no required actions in clear text. |
| 152 wallet->pan_ = pan; |
| 153 wallet->cvn_ = cvn; |
| 154 return wallet.Pass(); |
| 155 } |
| 156 |
130 base::string16 FullWallet::GetInfo(const AutofillType& type) { | 157 base::string16 FullWallet::GetInfo(const AutofillType& type) { |
131 switch (type.GetStorableType()) { | 158 switch (type.GetStorableType()) { |
132 case CREDIT_CARD_NUMBER: | 159 case CREDIT_CARD_NUMBER: |
133 return UTF8ToUTF16(GetPan()); | 160 return UTF8ToUTF16(GetPan()); |
134 | 161 |
135 case CREDIT_CARD_NAME: | 162 case CREDIT_CARD_NAME: |
136 return billing_address()->recipient_name(); | 163 return billing_address()->recipient_name(); |
137 | 164 |
138 case CREDIT_CARD_VERIFICATION_CODE: | 165 case CREDIT_CARD_VERIFICATION_CODE: |
139 return UTF8ToUTF16(GetCvn()); | 166 return UTF8ToUTF16(GetCvn()); |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 } | 314 } |
288 | 315 |
289 const std::string& FullWallet::GetCvn() { | 316 const std::string& FullWallet::GetCvn() { |
290 if (cvn_.empty()) | 317 if (cvn_.empty()) |
291 DecryptCardInfo(); | 318 DecryptCardInfo(); |
292 return cvn_; | 319 return cvn_; |
293 } | 320 } |
294 | 321 |
295 } // namespace wallet | 322 } // namespace wallet |
296 } // namespace autofill | 323 } // namespace autofill |
OLD | NEW |