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

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

Issue 2020883002: PaymentRequest: Introduce PaymentMethodData. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 #ifndef PaymentRequest_h 5 #ifndef PaymentRequest_h
6 #define PaymentRequest_h 6 #define PaymentRequest_h
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptValue.h" 9 #include "bindings/core/v8/ScriptValue.h"
10 #include "bindings/core/v8/ScriptWrappable.h" 10 #include "bindings/core/v8/ScriptWrappable.h"
11 #include "core/dom/ContextLifecycleObserver.h" 11 #include "core/dom/ContextLifecycleObserver.h"
12 #include "core/events/EventTarget.h" 12 #include "core/events/EventTarget.h"
13 #include "modules/ModulesExport.h" 13 #include "modules/ModulesExport.h"
14 #include "modules/payments/PaymentCompleter.h" 14 #include "modules/payments/PaymentCompleter.h"
15 #include "modules/payments/PaymentDetails.h" 15 #include "modules/payments/PaymentDetails.h"
16 #include "modules/payments/PaymentMethodData.h"
16 #include "modules/payments/PaymentOptions.h" 17 #include "modules/payments/PaymentOptions.h"
17 #include "modules/payments/PaymentUpdater.h" 18 #include "modules/payments/PaymentUpdater.h"
18 #include "mojo/public/cpp/bindings/binding.h" 19 #include "mojo/public/cpp/bindings/binding.h"
19 #include "platform/heap/Handle.h" 20 #include "platform/heap/Handle.h"
20 #include "public/platform/modules/payments/payment_request.mojom-blink.h" 21 #include "public/platform/modules/payments/payment_request.mojom-blink.h"
21 #include "wtf/Compiler.h" 22 #include "wtf/Compiler.h"
22 #include "wtf/Noncopyable.h" 23 #include "wtf/Noncopyable.h"
23 #include "wtf/RefPtr.h" 24 #include "wtf/RefPtr.h"
24 #include "wtf/Vector.h" 25 #include "wtf/Vector.h"
25 #include "wtf/text/WTFString.h" 26 #include "wtf/text/WTFString.h"
26 27
27 namespace blink { 28 namespace blink {
28 29
29 class ExceptionState; 30 class ExceptionState;
30 class PaymentAddress; 31 class PaymentAddress;
31 class ScriptPromiseResolver; 32 class ScriptPromiseResolver;
32 class ScriptState; 33 class ScriptState;
33 34
34 class MODULES_EXPORT PaymentRequest final : public EventTargetWithInlineData, WT F_NON_EXPORTED_BASE(public mojom::blink::PaymentRequestClient), public PaymentCo mpleter, public PaymentUpdater, public ContextLifecycleObserver, public ActiveSc riptWrappable { 35 class MODULES_EXPORT PaymentRequest final : public EventTargetWithInlineData, WT F_NON_EXPORTED_BASE(public mojom::blink::PaymentRequestClient), public PaymentCo mpleter, public PaymentUpdater, public ContextLifecycleObserver, public ActiveSc riptWrappable {
35 DEFINE_WRAPPERTYPEINFO(); 36 DEFINE_WRAPPERTYPEINFO();
36 USING_GARBAGE_COLLECTED_MIXIN(PaymentRequest) 37 USING_GARBAGE_COLLECTED_MIXIN(PaymentRequest)
37 WTF_MAKE_NONCOPYABLE(PaymentRequest); 38 WTF_MAKE_NONCOPYABLE(PaymentRequest);
38 39
39 public: 40 public:
40 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, ExceptionState&); 41 static PaymentRequest* create(ScriptState*, const HeapVector<PaymentMethodDa ta>&, const PaymentDetails&, ExceptionState&);
41 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, ExceptionState&); 42 static PaymentRequest* create(ScriptState*, const HeapVector<PaymentMethodDa ta>&, const PaymentDetails&, const PaymentOptions&, ExceptionState&);
42 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, const ScriptValue& data, E xceptionState&);
43 43
44 virtual ~PaymentRequest(); 44 virtual ~PaymentRequest();
45 45
46 ScriptPromise show(ScriptState*); 46 ScriptPromise show(ScriptState*);
47 void abort(ExceptionState&); 47 void abort(ExceptionState&);
48 48
49 PaymentAddress* getShippingAddress() const { return m_shippingAddress.get(); } 49 PaymentAddress* getShippingAddress() const { return m_shippingAddress.get(); }
50 const String& shippingOption() const { return m_shippingOption; } 50 const String& shippingOption() const { return m_shippingOption; }
51 51
52 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingaddresschange); 52 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingaddresschange);
53 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingoptionchange); 53 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingoptionchange);
54 54
55 // EventTargetWithInlineData: 55 // EventTargetWithInlineData:
56 const AtomicString& interfaceName() const override; 56 const AtomicString& interfaceName() const override;
57 ExecutionContext* getExecutionContext() const override; 57 ExecutionContext* getExecutionContext() const override;
58 58
59 // PaymentCompleter: 59 // PaymentCompleter:
60 ScriptPromise complete(ScriptState*, bool success) override; 60 ScriptPromise complete(ScriptState*, bool success) override;
61 61
62 // PaymentUpdater: 62 // PaymentUpdater:
63 void onUpdatePaymentDetails(const ScriptValue& detailsScriptValue) override; 63 void onUpdatePaymentDetails(const ScriptValue& detailsScriptValue) override;
64 void onUpdatePaymentDetailsFailure(const ScriptValue& error) override; 64 void onUpdatePaymentDetailsFailure(const ScriptValue& error) override;
65 65
66 DECLARE_TRACE(); 66 DECLARE_TRACE();
67 67
68 private: 68 private:
69 PaymentRequest(ScriptState*, const Vector<String>& supportedMethods, const P aymentDetails&, const PaymentOptions&, const ScriptValue& data, ExceptionState&) ; 69 PaymentRequest(ScriptState*, const HeapVector<PaymentMethodData>&, const Pay mentDetails&, const PaymentOptions&, ExceptionState&);
70 70
71 // LifecycleObserver: 71 // LifecycleObserver:
72 void contextDestroyed() override; 72 void contextDestroyed() override;
73 73
74 // ActiveScriptWrappable: 74 // ActiveScriptWrappable:
75 bool hasPendingActivity() const override; 75 bool hasPendingActivity() const override;
76 76
77 // mojom::blink::PaymentRequestClient: 77 // mojom::blink::PaymentRequestClient:
78 void OnShippingAddressChange(mojom::blink::PaymentAddressPtr) override; 78 void OnShippingAddressChange(mojom::blink::PaymentAddressPtr) override;
79 void OnShippingOptionChange(const String& shippingOptionId) override; 79 void OnShippingOptionChange(const String& shippingOptionId) override;
80 void OnPaymentResponse(mojom::blink::PaymentResponsePtr) override; 80 void OnPaymentResponse(mojom::blink::PaymentResponsePtr) override;
81 void OnError() override; 81 void OnError() override;
82 void OnComplete() override; 82 void OnComplete() override;
83 83
84 // Clears the promise resolvers and closes the Mojo connection. 84 // Clears the promise resolvers and closes the Mojo connection.
85 void clearResolversAndCloseMojoConnection(); 85 void clearResolversAndCloseMojoConnection();
86 86
87 Vector<String> m_supportedMethods; 87 HeapVector<PaymentMethodData> m_methodData;
88 PaymentDetails m_details; 88 PaymentDetails m_details;
89 PaymentOptions m_options; 89 PaymentOptions m_options;
90 String m_stringifiedData;
91 Member<PaymentAddress> m_shippingAddress; 90 Member<PaymentAddress> m_shippingAddress;
92 String m_shippingOption; 91 String m_shippingOption;
93 Member<ScriptPromiseResolver> m_showResolver; 92 Member<ScriptPromiseResolver> m_showResolver;
94 Member<ScriptPromiseResolver> m_completeResolver; 93 Member<ScriptPromiseResolver> m_completeResolver;
95 mojom::blink::PaymentRequestPtr m_paymentProvider; 94 mojom::blink::PaymentRequestPtr m_paymentProvider;
96 mojo::Binding<mojom::blink::PaymentRequestClient> m_clientBinding; 95 mojo::Binding<mojom::blink::PaymentRequestClient> m_clientBinding;
97 }; 96 };
98 97
99 } // namespace blink 98 } // namespace blink
100 99
101 #endif // PaymentRequest_h 100 #endif // PaymentRequest_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698