| 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 #ifndef COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ | 5 #ifndef COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ |
| 6 #define COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ | 6 #define COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "base/observer_list.h" | 13 #include "base/observer_list.h" |
| 14 #include "components/payments/content/payment_request_spec.h" | 14 #include "components/payments/content/payment_request_spec.h" |
| 15 #include "components/payments/content/payment_response_helper.h" | 15 #include "components/payments/content/payment_response_helper.h" |
| 16 #include "components/payments/core/address_normalizer.h" | 16 #include "components/payments/core/address_normalizer.h" |
| 17 #include "components/payments/core/payments_profile_comparator.h" | 17 #include "components/payments/core/payments_profile_comparator.h" |
| 18 #include "components/payments/mojom/payment_request.mojom.h" | 18 #include "components/payments/mojom/payment_request.mojom.h" |
| 19 | 19 |
| 20 namespace autofill { | 20 namespace autofill { |
| 21 class AutofillProfile; | 21 class AutofillProfile; |
| 22 class CreditCard; | 22 class CreditCard; |
| 23 class PersonalDataManager; | 23 class PersonalDataManager; |
| 24 class RegionDataLoader; | 24 class RegionDataLoader; |
| 25 } // namespace autofill | 25 } // namespace autofill |
| 26 | 26 |
| 27 namespace content { |
| 28 class BrowserContext; |
| 29 } |
| 30 |
| 27 namespace payments { | 31 namespace payments { |
| 28 | 32 |
| 29 class PaymentInstrument; | 33 class PaymentInstrument; |
| 30 class PaymentRequestDelegate; | 34 class PaymentRequestDelegate; |
| 31 | 35 |
| 32 // Keeps track of the information currently selected by the user and whether the | 36 // Keeps track of the information currently selected by the user and whether the |
| 33 // user is ready to pay. Uses information from the PaymentRequestSpec, which is | 37 // user is ready to pay. Uses information from the PaymentRequestSpec, which is |
| 34 // what the merchant has specified, as input into the "is ready to pay" | 38 // what the merchant has specified, as input into the "is ready to pay" |
| 35 // computation. | 39 // computation. |
| 36 class PaymentRequestState : public PaymentResponseHelper::Delegate, | 40 class PaymentRequestState : public PaymentResponseHelper::Delegate, |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 | 92 |
| 89 // Returns whether the user has at least one instrument that satisfies the | 93 // Returns whether the user has at least one instrument that satisfies the |
| 90 // specified supported payment methods. | 94 // specified supported payment methods. |
| 91 bool CanMakePayment() const; | 95 bool CanMakePayment() const; |
| 92 | 96 |
| 93 // Returns true if the payment methods that the merchant website have | 97 // Returns true if the payment methods that the merchant website have |
| 94 // requested are supported. For example, may return true for "basic-card", but | 98 // requested are supported. For example, may return true for "basic-card", but |
| 95 // false for "https://bobpay.com". | 99 // false for "https://bobpay.com". |
| 96 bool AreRequestedMethodsSupported() const; | 100 bool AreRequestedMethodsSupported() const; |
| 97 | 101 |
| 102 // Returns authenticated user email, or empty string. |
| 103 std::string GetAuthenticatedEmail() const; |
| 104 |
| 98 void AddObserver(Observer* observer); | 105 void AddObserver(Observer* observer); |
| 99 void RemoveObserver(Observer* observer); | 106 void RemoveObserver(Observer* observer); |
| 100 | 107 |
| 101 // Initiates the generation of the PaymentResponse. Callers should check | 108 // Initiates the generation of the PaymentResponse. Callers should check |
| 102 // |is_ready_to_pay|, which is inexpensive. | 109 // |is_ready_to_pay|, which is inexpensive. |
| 103 void GeneratePaymentResponse(); | 110 void GeneratePaymentResponse(); |
| 104 | 111 |
| 105 // Gets the Autofill Profile representing the shipping address or contact | 112 // Gets the Autofill Profile representing the shipping address or contact |
| 106 // information currently selected for this PaymentRequest flow. Can return | 113 // information currently selected for this PaymentRequest flow. Can return |
| 107 // null. | 114 // null. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 void SetSelectedShippingProfile(autofill::AutofillProfile* profile); | 156 void SetSelectedShippingProfile(autofill::AutofillProfile* profile); |
| 150 void SetSelectedContactProfile(autofill::AutofillProfile* profile); | 157 void SetSelectedContactProfile(autofill::AutofillProfile* profile); |
| 151 void SetSelectedInstrument(PaymentInstrument* instrument); | 158 void SetSelectedInstrument(PaymentInstrument* instrument); |
| 152 | 159 |
| 153 bool is_ready_to_pay() { return is_ready_to_pay_; } | 160 bool is_ready_to_pay() { return is_ready_to_pay_; } |
| 154 | 161 |
| 155 const std::string& GetApplicationLocale(); | 162 const std::string& GetApplicationLocale(); |
| 156 autofill::PersonalDataManager* GetPersonalDataManager(); | 163 autofill::PersonalDataManager* GetPersonalDataManager(); |
| 157 autofill::RegionDataLoader* GetRegionDataLoader(); | 164 autofill::RegionDataLoader* GetRegionDataLoader(); |
| 158 | 165 |
| 166 content::BrowserContext* GetBrowserContext(); |
| 167 |
| 159 Delegate* delegate() { return delegate_; } | 168 Delegate* delegate() { return delegate_; } |
| 160 | 169 |
| 161 PaymentsProfileComparator* profile_comparator() { | 170 PaymentsProfileComparator* profile_comparator() { |
| 162 return &profile_comparator_; | 171 return &profile_comparator_; |
| 163 } | 172 } |
| 164 | 173 |
| 165 private: | 174 private: |
| 166 // Fetches the Autofill Profiles for this user from the PersonalDataManager, | 175 // Fetches the Autofill Profiles for this user from the PersonalDataManager, |
| 167 // and stores copies of them, owned by this PaymentRequestState, in | 176 // and stores copies of them, owned by this PaymentRequestState, in |
| 168 // profile_cache_. | 177 // profile_cache_. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 PaymentsProfileComparator profile_comparator_; | 228 PaymentsProfileComparator profile_comparator_; |
| 220 | 229 |
| 221 base::ObserverList<Observer> observers_; | 230 base::ObserverList<Observer> observers_; |
| 222 | 231 |
| 223 DISALLOW_COPY_AND_ASSIGN(PaymentRequestState); | 232 DISALLOW_COPY_AND_ASSIGN(PaymentRequestState); |
| 224 }; | 233 }; |
| 225 | 234 |
| 226 } // namespace payments | 235 } // namespace payments |
| 227 | 236 |
| 228 #endif // COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ | 237 #endif // COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_STATE_H_ |
| OLD | NEW |