| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_PAYMENT_REQUEST_H_ | 5 #ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_H_ |
| 6 #define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_H_ | 6 #define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 void set_selected_shipping_profile(autofill::AutofillProfile* profile) { | 84 void set_selected_shipping_profile(autofill::AutofillProfile* profile) { |
| 85 selected_shipping_profile_ = profile; | 85 selected_shipping_profile_ = profile; |
| 86 } | 86 } |
| 87 autofill::AutofillProfile* selected_contact_profile() const { | 87 autofill::AutofillProfile* selected_contact_profile() const { |
| 88 return selected_contact_profile_; | 88 return selected_contact_profile_; |
| 89 } | 89 } |
| 90 void set_selected_contact_profile(autofill::AutofillProfile* profile) { | 90 void set_selected_contact_profile(autofill::AutofillProfile* profile) { |
| 91 selected_contact_profile_ = profile; | 91 selected_contact_profile_ = profile; |
| 92 } | 92 } |
| 93 | 93 |
| 94 const std::vector<autofill::CreditCard*>& credit_cards(); |
| 95 |
| 94 // Returns the currently selected credit card for this PaymentRequest flow. | 96 // Returns the currently selected credit card for this PaymentRequest flow. |
| 95 // It's not guaranteed to be complete. Returns nullptr if there is no selected | 97 // It's not guaranteed to be complete. Returns nullptr if there is no selected |
| 96 // card. | 98 // card. |
| 97 autofill::CreditCard* GetCurrentlySelectedCreditCard(); | 99 autofill::CreditCard* selected_credit_card() { return selected_credit_card_; } |
| 98 | 100 |
| 99 autofill::PersonalDataManager* personal_data_manager() { | 101 autofill::PersonalDataManager* personal_data_manager() { |
| 100 return delegate_->GetPersonalDataManager(); | 102 return delegate_->GetPersonalDataManager(); |
| 101 } | 103 } |
| 102 | 104 |
| 103 payments::mojom::PaymentDetails* details() { return details_.get(); } | 105 payments::mojom::PaymentDetails* details() { return details_.get(); } |
| 104 const std::vector<std::string>& supported_card_networks() { | 106 const std::vector<std::string>& supported_card_networks() { |
| 105 return supported_card_networks_; | 107 return supported_card_networks_; |
| 106 } | 108 } |
| 107 content::WebContents* web_contents() { return web_contents_; } | 109 content::WebContents* web_contents() { return web_contents_; } |
| 108 | 110 |
| 109 private: | 111 private: |
| 110 // Fetches the Autofill Profiles for this user from the PersonalDataManager, | 112 // Fetches the Autofill Profiles for this user from the PersonalDataManager, |
| 111 // and stores copies of them, owned by this Request, in profile_cache_. | 113 // and stores copies of them, owned by this Request, in profile_cache_. |
| 112 void PopulateProfileCache(); | 114 void PopulateProfileCache(); |
| 113 | 115 |
| 114 // Sets the default values for the selected Shipping and Contact profiles. | 116 // Sets the default values for the selected Shipping and Contact profiles, as |
| 117 // well as the selected Credit Card. |
| 115 void SetDefaultProfileSelections(); | 118 void SetDefaultProfileSelections(); |
| 116 | 119 |
| 117 // Validates the |method_data| and fills |supported_card_networks_|. | 120 // Validates the |method_data| and fills |supported_card_networks_|. |
| 118 void PopulateValidatedMethodData( | 121 void PopulateValidatedMethodData( |
| 119 const std::vector<payments::mojom::PaymentMethodDataPtr>& method_data); | 122 const std::vector<payments::mojom::PaymentMethodDataPtr>& method_data); |
| 120 | 123 |
| 121 content::WebContents* web_contents_; | 124 content::WebContents* web_contents_; |
| 122 std::unique_ptr<PaymentRequestDelegate> delegate_; | 125 std::unique_ptr<PaymentRequestDelegate> delegate_; |
| 123 // |manager_| owns this PaymentRequest. | 126 // |manager_| owns this PaymentRequest. |
| 124 PaymentRequestWebContentsManager* manager_; | 127 PaymentRequestWebContentsManager* manager_; |
| 125 mojo::Binding<payments::mojom::PaymentRequest> binding_; | 128 mojo::Binding<payments::mojom::PaymentRequest> binding_; |
| 126 payments::mojom::PaymentRequestClientPtr client_; | 129 payments::mojom::PaymentRequestClientPtr client_; |
| 127 payments::mojom::PaymentDetailsPtr details_; | 130 payments::mojom::PaymentDetailsPtr details_; |
| 128 std::unique_ptr<CurrencyFormatter> currency_formatter_; | 131 std::unique_ptr<CurrencyFormatter> currency_formatter_; |
| 129 // A set of supported basic card networks. | 132 // A set of supported basic card networks. |
| 130 std::vector<std::string> supported_card_networks_; | 133 std::vector<std::string> supported_card_networks_; |
| 131 | 134 |
| 132 // Profiles may change due to (e.g.) sync events, so profiles are cached after | 135 // Profiles may change due to (e.g.) sync events, so profiles are cached after |
| 133 // loading and owned here. They are populated once only, and ordered by | 136 // loading and owned here. They are populated once only, and ordered by |
| 134 // frecency. | 137 // frecency. |
| 135 std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_; | 138 std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_; |
| 136 std::vector<autofill::AutofillProfile*> shipping_profiles_; | 139 std::vector<autofill::AutofillProfile*> shipping_profiles_; |
| 137 std::vector<autofill::AutofillProfile*> contact_profiles_; | 140 std::vector<autofill::AutofillProfile*> contact_profiles_; |
| 138 autofill::AutofillProfile* selected_shipping_profile_; | 141 autofill::AutofillProfile* selected_shipping_profile_; |
| 139 autofill::AutofillProfile* selected_contact_profile_; | 142 autofill::AutofillProfile* selected_contact_profile_; |
| 143 std::vector<std::unique_ptr<autofill::CreditCard>> card_cache_; |
| 144 std::vector<autofill::CreditCard*> credit_cards_; |
| 145 autofill::CreditCard* selected_credit_card_; |
| 140 | 146 |
| 141 DISALLOW_COPY_AND_ASSIGN(PaymentRequest); | 147 DISALLOW_COPY_AND_ASSIGN(PaymentRequest); |
| 142 }; | 148 }; |
| 143 | 149 |
| 144 } // namespace payments | 150 } // namespace payments |
| 145 | 151 |
| 146 #endif // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_H_ | 152 #endif // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_H_ |
| OLD | NEW |