Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(422)

Side by Side Diff: third_party/WebKit/Source/modules/payments/PaymentRequest.cpp

Issue 2145553002: Parameterize OnError method. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Parameterize OnError method. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "modules/payments/PaymentRequest.h" 5 #include "modules/payments/PaymentRequest.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/JSONValuesForV8.h" 8 #include "bindings/core/v8/JSONValuesForV8.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
(...skipping 18 matching lines...) Expand all
29 #include <utility> 29 #include <utility>
30 30
31 namespace mojo { 31 namespace mojo {
32 32
33 using blink::mojom::blink::PaymentCurrencyAmount; 33 using blink::mojom::blink::PaymentCurrencyAmount;
34 using blink::mojom::blink::PaymentCurrencyAmountPtr; 34 using blink::mojom::blink::PaymentCurrencyAmountPtr;
35 using blink::mojom::blink::PaymentDetails; 35 using blink::mojom::blink::PaymentDetails;
36 using blink::mojom::blink::PaymentDetailsModifier; 36 using blink::mojom::blink::PaymentDetailsModifier;
37 using blink::mojom::blink::PaymentDetailsModifierPtr; 37 using blink::mojom::blink::PaymentDetailsModifierPtr;
38 using blink::mojom::blink::PaymentDetailsPtr; 38 using blink::mojom::blink::PaymentDetailsPtr;
39 using blink::mojom::blink::PaymentErrorReason;
39 using blink::mojom::blink::PaymentItem; 40 using blink::mojom::blink::PaymentItem;
40 using blink::mojom::blink::PaymentItemPtr; 41 using blink::mojom::blink::PaymentItemPtr;
41 using blink::mojom::blink::PaymentMethodData; 42 using blink::mojom::blink::PaymentMethodData;
42 using blink::mojom::blink::PaymentMethodDataPtr; 43 using blink::mojom::blink::PaymentMethodDataPtr;
43 using blink::mojom::blink::PaymentOptions; 44 using blink::mojom::blink::PaymentOptions;
44 using blink::mojom::blink::PaymentOptionsPtr; 45 using blink::mojom::blink::PaymentOptionsPtr;
45 using blink::mojom::blink::PaymentShippingOption; 46 using blink::mojom::blink::PaymentShippingOption;
46 using blink::mojom::blink::PaymentShippingOptionPtr; 47 using blink::mojom::blink::PaymentShippingOptionPtr;
47 48
48 template <> 49 template <>
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 ScriptPromise PaymentRequest::show(ScriptState* scriptState) 366 ScriptPromise PaymentRequest::show(ScriptState* scriptState)
366 { 367 {
367 if (m_showResolver) 368 if (m_showResolver)
368 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "Already called show() once")); 369 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "Already called show() once"));
369 370
370 if (!scriptState->domWindow() || !scriptState->domWindow()->frame()) 371 if (!scriptState->domWindow() || !scriptState->domWindow()->frame())
371 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "Cannot show the payment request")); 372 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "Cannot show the payment request"));
372 373
373 DCHECK(!m_paymentProvider.is_bound()); 374 DCHECK(!m_paymentProvider.is_bound());
374 scriptState->domWindow()->frame()->serviceRegistry()->connectToRemoteService (mojo::GetProxy(&m_paymentProvider)); 375 scriptState->domWindow()->frame()->serviceRegistry()->connectToRemoteService (mojo::GetProxy(&m_paymentProvider));
375 m_paymentProvider.set_connection_error_handler(convertToBaseCallback(WTF::bi nd(&PaymentRequest::OnError, wrapWeakPersistent(this)))); 376 m_paymentProvider.set_connection_error_handler(convertToBaseCallback(WTF::bi nd(&PaymentRequest::OnError, wrapWeakPersistent(this), mojom::blink::PaymentErro rReason::UNKNOWN)));
376 m_paymentProvider->SetClient(m_clientBinding.CreateInterfacePtrAndBind()); 377 m_paymentProvider->SetClient(m_clientBinding.CreateInterfacePtrAndBind());
377 m_paymentProvider->Show(mojo::WTFArray<mojom::blink::PaymentMethodDataPtr>:: From(m_methodData), mojom::blink::PaymentDetails::From(m_details), mojom::blink: :PaymentOptions::From(m_options)); 378 m_paymentProvider->Show(mojo::WTFArray<mojom::blink::PaymentMethodDataPtr>:: From(m_methodData), mojom::blink::PaymentDetails::From(m_details), mojom::blink: :PaymentOptions::From(m_options));
378 379
379 m_showResolver = ScriptPromiseResolver::create(scriptState); 380 m_showResolver = ScriptPromiseResolver::create(scriptState);
380 return m_showResolver->promise(); 381 return m_showResolver->promise();
381 } 382 }
382 383
383 ScriptPromise PaymentRequest::abort(ScriptState* scriptState) 384 ScriptPromise PaymentRequest::abort(ScriptState* scriptState)
384 { 385 {
385 if (m_abortResolver) 386 if (m_abortResolver)
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 } 580 }
580 581
581 m_showResolver->resolve(new PaymentResponse(std::move(response), this)); 582 m_showResolver->resolve(new PaymentResponse(std::move(response), this));
582 583
583 // Do not close the mojo connection here. The merchant website should call 584 // Do not close the mojo connection here. The merchant website should call
584 // PaymentResponse::complete(boolean), which will be forwarded over the mojo 585 // PaymentResponse::complete(boolean), which will be forwarded over the mojo
585 // connection to display a success or failure message to the user. 586 // connection to display a success or failure message to the user.
586 m_showResolver.clear(); 587 m_showResolver.clear();
587 } 588 }
588 589
589 void PaymentRequest::OnError() 590 void PaymentRequest::OnError(mojo::PaymentErrorReason error)
590 { 591 {
592 ExceptionCode ec = SyntaxError;
593 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.
594 switch (error) {
595 case mojom::blink::PaymentErrorReason::USER_CANCEL:
596 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.
597 break;
598 case mojom::blink::PaymentErrorReason::NOT_SUPPORTED:
599 ec = NotSupportedError;
600 message = "The payment method is not supported";
601 break;
602 case mojom::blink::PaymentErrorReason::UNKNOWN:
603 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.
604 break;
605 }
please use gerrit instead 2016/07/13 15:55:26 DCHECK(!message.IsEmpty());
pals 2016/07/14 08:37:38 Done.
591 if (m_completeResolver) 606 if (m_completeResolver)
592 m_completeResolver->reject(DOMException::create(SyntaxError, "Request ca ncelled")); 607 m_completeResolver->reject(DOMException::create(ec, message));
593 if (m_showResolver) 608 if (m_showResolver)
594 m_showResolver->reject(DOMException::create(SyntaxError, "Request cancel led")); 609 m_showResolver->reject(DOMException::create(ec, message));
595 if (m_abortResolver) 610 if (m_abortResolver)
596 m_abortResolver->reject(DOMException::create(SyntaxError, "Request cance lled")); 611 m_abortResolver->reject(DOMException::create(ec, message));
597 clearResolversAndCloseMojoConnection(); 612 clearResolversAndCloseMojoConnection();
598 } 613 }
599 614
600 void PaymentRequest::OnComplete() 615 void PaymentRequest::OnComplete()
601 { 616 {
602 DCHECK(m_completeResolver); 617 DCHECK(m_completeResolver);
603 m_completeResolver->resolve(); 618 m_completeResolver->resolve();
604 clearResolversAndCloseMojoConnection(); 619 clearResolversAndCloseMojoConnection();
605 } 620 }
606 621
(...skipping 17 matching lines...) Expand all
624 { 639 {
625 m_completeResolver.clear(); 640 m_completeResolver.clear();
626 m_showResolver.clear(); 641 m_showResolver.clear();
627 m_abortResolver.clear(); 642 m_abortResolver.clear();
628 if (m_clientBinding.is_bound()) 643 if (m_clientBinding.is_bound())
629 m_clientBinding.Close(); 644 m_clientBinding.Close();
630 m_paymentProvider.reset(); 645 m_paymentProvider.reset();
631 } 646 }
632 647
633 } // namespace blink 648 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698