| 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 e517e71e3e26d6b59b090553dcefd9581db49931..f7d0b88c740f0eeea5d10817b22fabffb53a3588 100644
|
| --- a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| +++ b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
|
| @@ -186,6 +186,7 @@ void ValidateAndConvertDisplayItems(const HeapVector<PaymentItem>& input,
|
| void ValidateAndConvertShippingOptions(
|
| const HeapVector<PaymentShippingOption>& input,
|
| Vector<PaymentShippingOptionPtr>& output,
|
| + ExecutionContext& execution_context,
|
| ExceptionState& exception_state) {
|
| HashSet<String> unique_ids;
|
| for (const PaymentShippingOption& option : input) {
|
| @@ -195,6 +196,10 @@ void ValidateAndConvertShippingOptions(
|
| }
|
|
|
| if (unique_ids.Contains(option.id())) {
|
| + execution_context.AddConsoleMessage(ConsoleMessage::Create(
|
| + kJSMessageSource, kWarningMessageLevel,
|
| + "Duplicate shipping option identifier '" + option.id() +
|
| + "' is treated as an invalid address indicator."));
|
| // Clear |output| instead of throwing an exception.
|
| output.clear();
|
| return;
|
| @@ -492,8 +497,9 @@ void ValidateAndConvertPaymentDetailsBase(const PaymentDetailsBase& input,
|
| }
|
|
|
| if (input.hasShippingOptions() && request_shipping) {
|
| - ValidateAndConvertShippingOptions(
|
| - input.shippingOptions(), output->shipping_options, exception_state);
|
| + ValidateAndConvertShippingOptions(input.shippingOptions(),
|
| + output->shipping_options,
|
| + execution_context, exception_state);
|
| if (exception_state.HadException())
|
| return;
|
| }
|
|
|