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

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

Issue 2734493002: Incognito mode behavior for 3rd party Android payment apps. (Closed)
Patch Set: Fix test Created 3 years, 9 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 <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 #include "bindings/core/v8/ExceptionState.h" 9 #include "bindings/core/v8/ExceptionState.h"
10 #include "bindings/core/v8/ScriptPromiseResolver.h" 10 #include "bindings/core/v8/ScriptPromiseResolver.h"
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 return ScriptPromise::rejectWithDOMException( 737 return ScriptPromise::rejectWithDOMException(
738 scriptState, 738 scriptState,
739 DOMException::create( 739 DOMException::create(
740 InvalidStateError, 740 InvalidStateError,
741 "Timed out after 60 seconds, complete() called too late")); 741 "Timed out after 60 seconds, complete() called too late"));
742 } 742 }
743 743
744 // User has cancelled the transaction while the website was processing it. 744 // User has cancelled the transaction while the website was processing it.
745 if (!m_paymentProvider) { 745 if (!m_paymentProvider) {
746 return ScriptPromise::rejectWithDOMException( 746 return ScriptPromise::rejectWithDOMException(
747 scriptState, 747 scriptState, DOMException::create(AbortError, "Request cancelled"));
748 DOMException::create(InvalidStateError, "Request cancelled"));
749 } 748 }
750 749
751 m_completeTimer.stop(); 750 m_completeTimer.stop();
752 751
753 // The payment provider should respond in PaymentRequest::OnComplete(). 752 // The payment provider should respond in PaymentRequest::OnComplete().
754 m_paymentProvider->Complete(payments::mojom::blink::PaymentComplete(result)); 753 m_paymentProvider->Complete(payments::mojom::blink::PaymentComplete(result));
755 754
756 m_completeResolver = ScriptPromiseResolver::create(scriptState); 755 m_completeResolver = ScriptPromiseResolver::create(scriptState);
757 return m_completeResolver->promise(); 756 return m_completeResolver->promise();
758 } 757 }
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 953
955 m_showResolver->resolve(new PaymentResponse(std::move(response), this)); 954 m_showResolver->resolve(new PaymentResponse(std::move(response), this));
956 955
957 // Do not close the mojo connection here. The merchant website should call 956 // Do not close the mojo connection here. The merchant website should call
958 // PaymentResponse::complete(String), which will be forwarded over the mojo 957 // PaymentResponse::complete(String), which will be forwarded over the mojo
959 // connection to display a success or failure message to the user. 958 // connection to display a success or failure message to the user.
960 m_showResolver.clear(); 959 m_showResolver.clear();
961 } 960 }
962 961
963 void PaymentRequest::OnError(PaymentErrorReason error) { 962 void PaymentRequest::OnError(PaymentErrorReason error) {
964 bool isError = false;
965 ExceptionCode ec = UnknownError; 963 ExceptionCode ec = UnknownError;
966 String message; 964 String message;
967 965
968 switch (error) { 966 switch (error) {
969 case PaymentErrorReason::USER_CANCEL: 967 case PaymentErrorReason::USER_CANCEL:
968 ec = AbortError;
970 message = "Request cancelled"; 969 message = "Request cancelled";
971 break; 970 break;
972 case PaymentErrorReason::NOT_SUPPORTED: 971 case PaymentErrorReason::NOT_SUPPORTED:
973 isError = true;
974 ec = NotSupportedError; 972 ec = NotSupportedError;
975 message = "The payment method is not supported"; 973 message = "The payment method is not supported";
976 break; 974 break;
977 case PaymentErrorReason::UNKNOWN: 975 case PaymentErrorReason::UNKNOWN:
978 isError = true;
979 ec = UnknownError; 976 ec = UnknownError;
980 message = "Request failed"; 977 message = "Request failed";
981 break; 978 break;
982 } 979 }
983 980
984 DCHECK(!message.isEmpty()); 981 DCHECK(!message.isEmpty());
985 982
986 if (isError) { 983 if (m_completeResolver)
987 if (m_completeResolver) 984 m_completeResolver->reject(DOMException::create(ec, message));
988 m_completeResolver->reject(DOMException::create(ec, message));
989 985
990 if (m_showResolver) 986 if (m_showResolver)
991 m_showResolver->reject(DOMException::create(ec, message)); 987 m_showResolver->reject(DOMException::create(ec, message));
992 988
993 if (m_abortResolver) 989 if (m_abortResolver)
994 m_abortResolver->reject(DOMException::create(ec, message)); 990 m_abortResolver->reject(DOMException::create(ec, message));
995 991
996 if (m_canMakePaymentResolver) 992 if (m_canMakePaymentResolver)
997 m_canMakePaymentResolver->reject(DOMException::create(ec, message)); 993 m_canMakePaymentResolver->reject(DOMException::create(ec, message));
998 } else {
999 if (m_completeResolver)
1000 m_completeResolver->reject(message);
1001
1002 if (m_showResolver)
1003 m_showResolver->reject(message);
1004
1005 if (m_abortResolver)
1006 m_abortResolver->reject(message);
1007
1008 if (m_canMakePaymentResolver)
1009 m_canMakePaymentResolver->reject(message);
1010 }
1011 994
1012 clearResolversAndCloseMojoConnection(); 995 clearResolversAndCloseMojoConnection();
1013 } 996 }
1014 997
1015 void PaymentRequest::OnComplete() { 998 void PaymentRequest::OnComplete() {
1016 DCHECK(m_completeResolver); 999 DCHECK(m_completeResolver);
1017 m_completeResolver->resolve(); 1000 m_completeResolver->resolve();
1018 clearResolversAndCloseMojoConnection(); 1001 clearResolversAndCloseMojoConnection();
1019 } 1002 }
1020 1003
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 m_completeResolver.clear(); 1045 m_completeResolver.clear();
1063 m_showResolver.clear(); 1046 m_showResolver.clear();
1064 m_abortResolver.clear(); 1047 m_abortResolver.clear();
1065 m_canMakePaymentResolver.clear(); 1048 m_canMakePaymentResolver.clear();
1066 if (m_clientBinding.is_bound()) 1049 if (m_clientBinding.is_bound())
1067 m_clientBinding.Close(); 1050 m_clientBinding.Close();
1068 m_paymentProvider.reset(); 1051 m_paymentProvider.reset();
1069 } 1052 }
1070 1053
1071 } // namespace blink 1054 } // namespace blink
OLDNEW
« no previous file with comments | « components/payments_strings.grdp ('k') | third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698