| Index: third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| diff --git a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| index d7a5ca20b943e31df916e31cf9a5a9ebc830737e..ed6b35100415a888b48c8af21f645dc1302d8c22 100644
|
| --- a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| +++ b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| @@ -94,12 +94,12 @@ struct TypeConverter<PaymentDetailsModifierPtr, blink::PaymentDetailsModifier> {
|
| else
|
| output->total = PaymentItem::New();
|
|
|
| - if (input.hasAdditionalDisplayItems())
|
| - output->additional_display_items =
|
| - mojo::WTFArray<PaymentItemPtr>::From(input.additionalDisplayItems());
|
| - else
|
| - output->additional_display_items = mojo::WTFArray<PaymentItemPtr>::New(0);
|
| -
|
| + if (input.hasAdditionalDisplayItems()) {
|
| + for (size_t i = 0; i < input.additionalDisplayItems().size(); ++i) {
|
| + output->additional_display_items.append(
|
| + PaymentItem::From(input.additionalDisplayItems()[i]));
|
| + }
|
| + }
|
| return output;
|
| }
|
| };
|
| @@ -110,24 +110,26 @@ struct TypeConverter<PaymentDetailsPtr, blink::PaymentDetails> {
|
| PaymentDetailsPtr output = PaymentDetails::New();
|
| output->total = PaymentItem::From(input.total());
|
|
|
| - if (input.hasDisplayItems())
|
| - output->display_items =
|
| - mojo::WTFArray<PaymentItemPtr>::From(input.displayItems());
|
| - else
|
| - output->display_items = mojo::WTFArray<PaymentItemPtr>::New(0);
|
| + if (input.hasDisplayItems()) {
|
| + for (size_t i = 0; i < input.displayItems().size(); ++i) {
|
| + output->display_items.append(
|
| + PaymentItem::From(input.displayItems()[i]));
|
| + }
|
| + }
|
|
|
| - if (input.hasShippingOptions())
|
| - output->shipping_options = mojo::WTFArray<PaymentShippingOptionPtr>::From(
|
| - input.shippingOptions());
|
| - else
|
| - output->shipping_options =
|
| - mojo::WTFArray<PaymentShippingOptionPtr>::New(0);
|
| + if (input.hasShippingOptions()) {
|
| + for (size_t i = 0; i < input.shippingOptions().size(); ++i) {
|
| + output->shipping_options.append(
|
| + PaymentShippingOption::From(input.shippingOptions()[i]));
|
| + }
|
| + }
|
|
|
| - if (input.hasModifiers())
|
| - output->modifiers =
|
| - mojo::WTFArray<PaymentDetailsModifierPtr>::From(input.modifiers());
|
| - else
|
| - output->modifiers = mojo::WTFArray<PaymentDetailsModifierPtr>::New(0);
|
| + if (input.hasModifiers()) {
|
| + for (size_t i = 0; i < input.modifiers().size(); ++i) {
|
| + output->modifiers.append(
|
| + PaymentDetailsModifier::From(input.modifiers()[i]));
|
| + }
|
| + }
|
|
|
| if (input.hasError())
|
| output->error = input.error();
|
| @@ -428,6 +430,19 @@ mojom::blink::PaymentDetailsPtr maybeKeepShippingOptions(
|
| return details;
|
| }
|
|
|
| +WTF::Vector<mojom::blink::PaymentMethodDataPtr> ConvertPaymentMethodData(
|
| + const Vector<PaymentRequest::MethodData>& blinkMethods) {
|
| + WTF::Vector<mojom::blink::PaymentMethodDataPtr> mojoMethods(
|
| + blinkMethods.size());
|
| + for (size_t i = 0; i < blinkMethods.size(); ++i) {
|
| + mojoMethods[i] = mojom::blink::PaymentMethodData::New();
|
| + mojoMethods[i]->supported_methods =
|
| + WTF::Vector<WTF::String>(blinkMethods[i].supportedMethods);
|
| + mojoMethods[i]->stringified_data = blinkMethods[i].stringifiedData;
|
| + }
|
| + return mojoMethods;
|
| +}
|
| +
|
| } // namespace
|
|
|
| PaymentRequest* PaymentRequest::create(
|
| @@ -635,10 +650,10 @@ PaymentRequest::PaymentRequest(ScriptState* scriptState,
|
| m_paymentProvider.set_connection_error_handler(convertToBaseCallback(
|
| WTF::bind(&PaymentRequest::OnError, wrapWeakPersistent(this),
|
| mojom::blink::PaymentErrorReason::UNKNOWN)));
|
| +
|
| m_paymentProvider->Init(
|
| m_clientBinding.CreateInterfacePtrAndBind(),
|
| - mojo::WTFArray<mojom::blink::PaymentMethodDataPtr>::From(
|
| - validatedMethodData),
|
| + ConvertPaymentMethodData(validatedMethodData),
|
| maybeKeepShippingOptions(mojom::blink::PaymentDetails::From(details),
|
| keepShippingOptions),
|
| mojom::blink::PaymentOptions::From(m_options));
|
|
|