OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "ios/chrome/browser/payments/payment_request.h" | 5 #include "ios/chrome/browser/payments/payment_request.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/containers/adapters.h" | 9 #include "base/containers/adapters.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 personal_data_manager_(personal_data_manager), | 66 personal_data_manager_(personal_data_manager), |
67 payment_request_ui_delegate_(payment_request_ui_delegate), | 67 payment_request_ui_delegate_(payment_request_ui_delegate), |
68 address_normalizer_(new AddressNormalizerImpl( | 68 address_normalizer_(new AddressNormalizerImpl( |
69 GetAddressInputSource( | 69 GetAddressInputSource( |
70 personal_data_manager_->GetURLRequestContextGetter()), | 70 personal_data_manager_->GetURLRequestContextGetter()), |
71 GetAddressInputStorage())), | 71 GetAddressInputStorage())), |
72 selected_shipping_profile_(nullptr), | 72 selected_shipping_profile_(nullptr), |
73 selected_contact_profile_(nullptr), | 73 selected_contact_profile_(nullptr), |
74 selected_payment_method_(nullptr), | 74 selected_payment_method_(nullptr), |
75 selected_shipping_option_(nullptr), | 75 selected_shipping_option_(nullptr), |
76 profile_comparator_(GetApplicationContext()->GetApplicationLocale(), | 76 profile_comparator_(GetApplicationLocale(), *this), |
77 *this), | |
78 journey_logger_(IsIncognito(), GetLastCommittedURL(), GetUkmRecorder()) { | 77 journey_logger_(IsIncognito(), GetLastCommittedURL(), GetUkmRecorder()) { |
79 PopulateAvailableShippingOptions(); | 78 PopulateAvailableShippingOptions(); |
80 PopulateProfileCache(); | 79 PopulateProfileCache(); |
81 PopulateAvailableProfiles(); | 80 PopulateAvailableProfiles(); |
82 PopulatePaymentMethodCache(); | 81 PopulatePaymentMethodCache(); |
83 PopulateAvailablePaymentMethods(); | 82 PopulateAvailablePaymentMethods(); |
84 | 83 |
85 SetSelectedShippingOption(); | 84 SetSelectedShippingOption(); |
86 | 85 |
87 if (request_shipping()) { | 86 if (request_shipping()) { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 145 |
147 AddressNormalizer* PaymentRequest::GetAddressNormalizer() { | 146 AddressNormalizer* PaymentRequest::GetAddressNormalizer() { |
148 return address_normalizer_; | 147 return address_normalizer_; |
149 } | 148 } |
150 | 149 |
151 autofill::RegionDataLoader* PaymentRequest::GetRegionDataLoader() { | 150 autofill::RegionDataLoader* PaymentRequest::GetRegionDataLoader() { |
152 return new autofill::RegionDataLoaderImpl( | 151 return new autofill::RegionDataLoaderImpl( |
153 GetAddressInputSource( | 152 GetAddressInputSource( |
154 personal_data_manager_->GetURLRequestContextGetter()) | 153 personal_data_manager_->GetURLRequestContextGetter()) |
155 .release(), | 154 .release(), |
156 GetAddressInputStorage().release(), | 155 GetAddressInputStorage().release(), GetApplicationLocale()); |
157 GetApplicationContext()->GetApplicationLocale()); | |
158 } | 156 } |
159 | 157 |
160 ukm::UkmRecorder* PaymentRequest::GetUkmRecorder() { | 158 ukm::UkmRecorder* PaymentRequest::GetUkmRecorder() { |
161 return GetApplicationContext()->GetUkmRecorder(); | 159 return GetApplicationContext()->GetUkmRecorder(); |
162 } | 160 } |
163 | 161 |
164 std::string PaymentRequest::GetAuthenticatedEmail() const { | 162 std::string PaymentRequest::GetAuthenticatedEmail() const { |
165 const SigninManager* signin_manager = | 163 const SigninManager* signin_manager = |
166 ios::SigninManagerFactory::GetForBrowserStateIfExists(browser_state_); | 164 ios::SigninManagerFactory::GetForBrowserStateIfExists(browser_state_); |
167 if (signin_manager && signin_manager->IsAuthenticated()) | 165 if (signin_manager && signin_manager->IsAuthenticated()) |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 PaymentShippingType PaymentRequest::shipping_type() const { | 197 PaymentShippingType PaymentRequest::shipping_type() const { |
200 return web_payment_request_.options.shipping_type; | 198 return web_payment_request_.options.shipping_type; |
201 } | 199 } |
202 | 200 |
203 CurrencyFormatter* PaymentRequest::GetOrCreateCurrencyFormatter() { | 201 CurrencyFormatter* PaymentRequest::GetOrCreateCurrencyFormatter() { |
204 if (!currency_formatter_) { | 202 if (!currency_formatter_) { |
205 currency_formatter_.reset(new CurrencyFormatter( | 203 currency_formatter_.reset(new CurrencyFormatter( |
206 base::UTF16ToASCII(web_payment_request_.details.total.amount.currency), | 204 base::UTF16ToASCII(web_payment_request_.details.total.amount.currency), |
207 base::UTF16ToASCII( | 205 base::UTF16ToASCII( |
208 web_payment_request_.details.total.amount.currency_system), | 206 web_payment_request_.details.total.amount.currency_system), |
209 GetApplicationContext()->GetApplicationLocale())); | 207 GetApplicationLocale())); |
210 } | 208 } |
211 return currency_formatter_.get(); | 209 return currency_formatter_.get(); |
212 } | 210 } |
213 | 211 |
214 autofill::AutofillProfile* PaymentRequest::AddAutofillProfile( | 212 autofill::AutofillProfile* PaymentRequest::AddAutofillProfile( |
215 const autofill::AutofillProfile& profile) { | 213 const autofill::AutofillProfile& profile) { |
216 profile_cache_.push_back( | 214 profile_cache_.push_back( |
217 base::MakeUnique<autofill::AutofillProfile>(profile)); | 215 base::MakeUnique<autofill::AutofillProfile>(profile)); |
218 | 216 |
219 PopulateAvailableProfiles(); | 217 PopulateAvailableProfiles(); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 // merchant has requested exactly. This should be false for unknown card | 281 // merchant has requested exactly. This should be false for unknown card |
284 // types, if the merchant cannot accept some card types. | 282 // types, if the merchant cannot accept some card types. |
285 bool matches_merchant_card_type_exactly = | 283 bool matches_merchant_card_type_exactly = |
286 credit_card.card_type() != autofill::CreditCard::CARD_TYPE_UNKNOWN || | 284 credit_card.card_type() != autofill::CreditCard::CARD_TYPE_UNKNOWN || |
287 supported_card_types_set_.size() == kTotalNumberOfCardTypes; | 285 supported_card_types_set_.size() == kTotalNumberOfCardTypes; |
288 | 286 |
289 // AutofillPaymentInstrument makes a copy of |credit_card| so it is | 287 // AutofillPaymentInstrument makes a copy of |credit_card| so it is |
290 // effectively owned by this object. | 288 // effectively owned by this object. |
291 payment_method_cache_.push_back(base::MakeUnique<AutofillPaymentInstrument>( | 289 payment_method_cache_.push_back(base::MakeUnique<AutofillPaymentInstrument>( |
292 method_name, credit_card, matches_merchant_card_type_exactly, | 290 method_name, credit_card, matches_merchant_card_type_exactly, |
293 billing_profiles(), GetApplicationContext()->GetApplicationLocale(), | 291 billing_profiles(), GetApplicationLocale(), this)); |
294 this)); | |
295 | 292 |
296 PopulateAvailablePaymentMethods(); | 293 PopulateAvailablePaymentMethods(); |
297 | 294 |
298 return static_cast<AutofillPaymentInstrument*>( | 295 return static_cast<AutofillPaymentInstrument*>( |
299 payment_method_cache_.back().get()); | 296 payment_method_cache_.back().get()); |
300 } | 297 } |
301 | 298 |
302 PaymentsProfileComparator* PaymentRequest::profile_comparator() { | 299 PaymentsProfileComparator* PaymentRequest::profile_comparator() { |
303 return &profile_comparator_; | 300 return &profile_comparator_; |
304 } | 301 } |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 // should be treated as the selected item. | 390 // should be treated as the selected item. |
394 for (auto* shipping_option : base::Reversed(shipping_options_)) { | 391 for (auto* shipping_option : base::Reversed(shipping_options_)) { |
395 if (shipping_option->selected) { | 392 if (shipping_option->selected) { |
396 selected_shipping_option_ = shipping_option; | 393 selected_shipping_option_ = shipping_option; |
397 break; | 394 break; |
398 } | 395 } |
399 } | 396 } |
400 } | 397 } |
401 | 398 |
402 } // namespace payments | 399 } // namespace payments |
OLD | NEW |