Index: ios/chrome/browser/payments/payment_request.h |
diff --git a/ios/chrome/browser/payments/payment_request.h b/ios/chrome/browser/payments/payment_request.h |
index f2a70a8f55d3415f720326a3f3b2ac9ea0682d7e..b91b47a75569d713fc9ae123b2c881af1f9b8130 100644 |
--- a/ios/chrome/browser/payments/payment_request.h |
+++ b/ios/chrome/browser/payments/payment_request.h |
@@ -5,6 +5,7 @@ |
#ifndef IOS_CHROME_BROWSER_PAYMENTS_PAYMENT_REQUEST_H_ |
#define IOS_CHROME_BROWSER_PAYMENTS_PAYMENT_REQUEST_H_ |
+#include <map> |
#include <memory> |
#include <set> |
#include <string> |
@@ -29,6 +30,10 @@ class AddressNormalizerImpl; |
class CurrencyFormatter; |
} // namespace payments |
+namespace ios { |
+class ChromeBrowserState; |
+} // namepsace ios |
+ |
// A protocol implementd by any UI classes that the PaymentRequest object |
// needs to communicate with in order to perform certain actions such as |
// initiating UI to request full card details for payment. |
@@ -48,6 +53,7 @@ class PaymentRequest : public payments::PaymentOptionsProvider, |
public: |
// |personal_data_manager| should not be null and should outlive this object. |
PaymentRequest(const web::PaymentRequest& web_payment_request, |
+ ios::ChromeBrowserState* browser_state_, |
autofill::PersonalDataManager* personal_data_manager, |
id<PaymentRequestUIDelegate> payment_request_ui_delegate); |
~PaymentRequest() override; |
@@ -149,6 +155,11 @@ class PaymentRequest : public payments::PaymentOptionsProvider, |
return basic_card_specified_networks_; |
} |
+ const std::map<std::string, std::set<std::string>>& stringified_method_data() |
+ const { |
+ return stringified_method_data_; |
+ } |
+ |
// Adds |credit_card| to the list of cached credit cards, updates the list of |
// available credit cards, and returns a reference to the cached copy of |
// |credit_card|. |
@@ -218,6 +229,9 @@ class PaymentRequest : public payments::PaymentOptionsProvider, |
web::PaymentRequest web_payment_request_; |
// Never null and outlives this object. |
+ ios::ChromeBrowserState* browser_state_; |
+ |
+ // Never null and outlives this object. |
autofill::PersonalDataManager* personal_data_manager_; |
// The PaymentRequestUIDelegate as provided by the UI object that originally |
@@ -259,6 +273,10 @@ class PaymentRequest : public payments::PaymentOptionsProvider, |
// use |supported_card_networks_| for merchant support checks. |
std::set<std::string> basic_card_specified_networks_; |
+ // A mapping of the payment method names to the corresponding JSON-stringified |
+ // payment method specific data. |
+ std::map<std::string, std::set<std::string>> stringified_method_data_; |
+ |
// A vector of pointers to the shipping options in |web_payment_request_|. |
std::vector<web::PaymentShippingOption*> shipping_options_; |
web::PaymentShippingOption* selected_shipping_option_; |