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 |