Chromium Code Reviews| 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 386f630876a9c71a1349abdb661c91fee410b93f..6ced5247e2a35862bf5c0ca17f3b1e6369bdc134 100644 |
| --- a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp |
| +++ b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp |
| @@ -36,6 +36,7 @@ using blink::mojom::blink::PaymentDetails; |
| using blink::mojom::blink::PaymentDetailsModifier; |
| using blink::mojom::blink::PaymentDetailsModifierPtr; |
| using blink::mojom::blink::PaymentDetailsPtr; |
| +using blink::mojom::blink::PaymentErrorReason; |
| using blink::mojom::blink::PaymentItem; |
| using blink::mojom::blink::PaymentItemPtr; |
| using blink::mojom::blink::PaymentMethodData; |
| @@ -372,7 +373,7 @@ ScriptPromise PaymentRequest::show(ScriptState* scriptState) |
| DCHECK(!m_paymentProvider.is_bound()); |
| scriptState->domWindow()->frame()->serviceRegistry()->connectToRemoteService(mojo::GetProxy(&m_paymentProvider)); |
| - m_paymentProvider.set_connection_error_handler(convertToBaseCallback(WTF::bind(&PaymentRequest::OnError, wrapWeakPersistent(this)))); |
| + m_paymentProvider.set_connection_error_handler(convertToBaseCallback(WTF::bind(&PaymentRequest::OnError, wrapWeakPersistent(this), mojom::blink::PaymentErrorReason::UNKNOWN))); |
| m_paymentProvider->SetClient(m_clientBinding.CreateInterfacePtrAndBind()); |
| m_paymentProvider->Show(mojo::WTFArray<mojom::blink::PaymentMethodDataPtr>::From(m_methodData), mojom::blink::PaymentDetails::From(m_details), mojom::blink::PaymentOptions::From(m_options)); |
| @@ -586,14 +587,28 @@ void PaymentRequest::OnPaymentResponse(mojom::blink::PaymentResponsePtr response |
| m_showResolver.clear(); |
| } |
| -void PaymentRequest::OnError() |
| +void PaymentRequest::OnError(mojo::PaymentErrorReason error) |
| { |
| + ExceptionCode ec = SyntaxError; |
| + String message = "The payment request is cancelled due to unknown reasons"; |
|
please use gerrit instead
2016/07/13 15:55:26
No need to initialize this string. It will be over
pals
2016/07/14 08:37:38
Done.
|
| + switch (error) { |
| + case mojom::blink::PaymentErrorReason::USER_CANCEL: |
| + message = "User cancelled the payment request"; |
|
please use gerrit instead
2016/07/13 15:55:26
Change this to "Request cancelled" to fix the inte
pals
2016/07/14 08:37:38
Done.
|
| + break; |
| + case mojom::blink::PaymentErrorReason::NOT_SUPPORTED: |
| + ec = NotSupportedError; |
| + message = "The payment method is not supported"; |
| + break; |
| + case mojom::blink::PaymentErrorReason::UNKNOWN: |
| + message = "The payment request is cancelled due to unknown reasons"; |
|
please use gerrit instead
2016/07/13 15:55:26
Let's use a shorter message, like "Request failed"
pals
2016/07/14 08:37:38
Done.
|
| + break; |
| + } |
|
please use gerrit instead
2016/07/13 15:55:26
DCHECK(!message.IsEmpty());
pals
2016/07/14 08:37:38
Done.
|
| if (m_completeResolver) |
| - m_completeResolver->reject(DOMException::create(SyntaxError, "Request cancelled")); |
| + m_completeResolver->reject(DOMException::create(ec, message)); |
| if (m_showResolver) |
| - m_showResolver->reject(DOMException::create(SyntaxError, "Request cancelled")); |
| + m_showResolver->reject(DOMException::create(ec, message)); |
| if (m_abortResolver) |
| - m_abortResolver->reject(DOMException::create(SyntaxError, "Request cancelled")); |
| + m_abortResolver->reject(DOMException::create(ec, message)); |
| clearResolversAndCloseMojoConnection(); |
| } |