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

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

Issue 1753543002: PaymentRequest Mojo bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@interface
Patch Set: Disable WTF-Mojo string serialization for now. Created 4 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 #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/events/EventTarget.h" 11 #include "core/events/EventTarget.h"
12 #include "modules/payments/PaymentDetails.h" 12 #include "modules/payments/PaymentDetails.h"
13 #include "modules/payments/PaymentOptions.h" 13 #include "modules/payments/PaymentOptions.h"
14 #include "mojo/public/cpp/bindings/binding.h"
14 #include "platform/heap/Handle.h" 15 #include "platform/heap/Handle.h"
16 #include "public/platform/modules/payments/payment_request.mojom-blink.h"
15 #include "wtf/Noncopyable.h" 17 #include "wtf/Noncopyable.h"
16 #include "wtf/RefPtr.h" 18 #include "wtf/RefPtr.h"
17 #include "wtf/Vector.h" 19 #include "wtf/Vector.h"
18 #include "wtf/text/WTFString.h" 20 #include "wtf/text/WTFString.h"
19 21
20 namespace blink { 22 namespace blink {
21 23
22 class ExceptionState; 24 class ExceptionState;
25 class ScriptPromiseResolver;
23 class ScriptState; 26 class ScriptState;
24 class ShippingAddress; 27 class ShippingAddress;
25 28
26 class PaymentRequest final : public RefCountedGarbageCollectedEventTargetWithInl ineData<PaymentRequest> { 29 class PaymentRequest final : public RefCountedGarbageCollectedEventTargetWithInl ineData<PaymentRequest>, mojom::blink::PaymentRequestClient {
27 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(PaymentRequest); 30 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(PaymentRequest);
28 DEFINE_WRAPPERTYPEINFO(); 31 DEFINE_WRAPPERTYPEINFO();
29 WTF_MAKE_NONCOPYABLE(PaymentRequest); 32 WTF_MAKE_NONCOPYABLE(PaymentRequest);
30 33
31 public: 34 public:
32 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, ExceptionState&); 35 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, ExceptionState&);
33 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, ExceptionState&); 36 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, ExceptionState&);
34 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, const ScriptValue& data, E xceptionState&); 37 static PaymentRequest* create(ScriptState*, const Vector<String>& supportedM ethods, const PaymentDetails&, const PaymentOptions&, const ScriptValue& data, E xceptionState&);
35 38
36 virtual ~PaymentRequest(); 39 virtual ~PaymentRequest();
37 40
38 ScriptPromise show(ScriptState*); 41 ScriptPromise show(ScriptState*);
39 void abort(); 42 void abort(ExceptionState&);
40 43
41 ShippingAddress* getShippingAddress() const { return m_shippingAddress.get() ; } 44 ShippingAddress* getShippingAddress() const { return m_shippingAddress.get() ; }
42 const String& shippingOption() const { return m_shippingOption; } 45 const String& shippingOption() const { return m_shippingOption; }
43 46
44 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingaddresschange); 47 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingaddresschange);
45 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingoptionchange); 48 DEFINE_ATTRIBUTE_EVENT_LISTENER(shippingoptionchange);
46 49
47 // EventTargetWithInlineData: 50 // EventTargetWithInlineData:
48 const AtomicString& interfaceName() const override; 51 const AtomicString& interfaceName() const override;
49 ExecutionContext* getExecutionContext() const override; 52 ExecutionContext* getExecutionContext() const override;
50 53
54 ScriptPromise complete(ScriptState*, bool success);
55
51 DECLARE_TRACE(); 56 DECLARE_TRACE();
52 57
53 private: 58 private:
54 PaymentRequest(ScriptState*, const Vector<String>& supportedMethods, const P aymentDetails&, const PaymentOptions&, const ScriptValue& data, ExceptionState&) ; 59 PaymentRequest(ScriptState*, const Vector<String>& supportedMethods, const P aymentDetails&, const PaymentOptions&, const ScriptValue& data, ExceptionState&) ;
55 60
61 // mojom::blink::PaymentRequestClient
62 void OnShippingAddressChange(mojom::blink::ShippingAddressPtr) override;
63 void OnShippingOptionChange(const String& shippingOptionId) override;
64 void OnPaymentResponse(mojom::blink::PaymentResponsePtr) override;
65 void OnError() override;
66 void OnComplete() override;
67
56 RefPtr<ScriptState> m_scriptState; 68 RefPtr<ScriptState> m_scriptState;
57 Vector<String> m_supportedMethods; 69 Vector<String> m_supportedMethods;
58 PaymentDetails m_details; 70 PaymentDetails m_details;
59 PaymentOptions m_options; 71 PaymentOptions m_options;
60 String m_stringifiedData; 72 String m_stringifiedData;
61 Member<ShippingAddress> m_shippingAddress; 73 Member<ShippingAddress> m_shippingAddress;
62 String m_shippingOption; 74 String m_shippingOption;
75 Member<ScriptPromiseResolver> m_showResolver;
76 Member<ScriptPromiseResolver> m_completeResolver;
77 mojom::blink::PaymentRequestPtr m_paymentProvider;
78 mojo::Binding<mojom::blink::PaymentRequestClient> m_clientBinding;
63 }; 79 };
64 80
65 } // namespace blink 81 } // namespace blink
66 82
67 #endif // PaymentRequest_h 83 #endif // PaymentRequest_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698