OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 PushSubscription_h | 5 #ifndef PushSubscription_h |
6 #define PushSubscription_h | 6 #define PushSubscription_h |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include "bindings/core/v8/ScriptPromise.h" | 9 #include "bindings/core/v8/ScriptPromise.h" |
10 #include "bindings/core/v8/ScriptValue.h" | 10 #include "bindings/core/v8/ScriptValue.h" |
11 #include "core/dom/DOMArrayBuffer.h" | 11 #include "core/dom/DOMArrayBuffer.h" |
| 12 #include "core/dom/DOMTimeStamp.h" |
12 #include "platform/bindings/ScriptWrappable.h" | 13 #include "platform/bindings/ScriptWrappable.h" |
13 #include "platform/heap/Handle.h" | 14 #include "platform/heap/Handle.h" |
14 #include "platform/weborigin/KURL.h" | 15 #include "platform/weborigin/KURL.h" |
15 #include "platform/wtf/PassRefPtr.h" | 16 #include "platform/wtf/PassRefPtr.h" |
16 #include "platform/wtf/RefPtr.h" | 17 #include "platform/wtf/RefPtr.h" |
17 | 18 |
18 namespace blink { | 19 namespace blink { |
19 | 20 |
20 class PushSubscriptionOptions; | 21 class PushSubscriptionOptions; |
21 class ServiceWorkerRegistration; | 22 class ServiceWorkerRegistration; |
22 class ScriptPromiseResolver; | 23 class ScriptPromiseResolver; |
23 class ScriptState; | 24 class ScriptState; |
24 struct WebPushSubscription; | 25 struct WebPushSubscription; |
25 | 26 |
26 class PushSubscription final | 27 class PushSubscription final |
27 : public GarbageCollectedFinalized<PushSubscription>, | 28 : public GarbageCollectedFinalized<PushSubscription>, |
28 public ScriptWrappable { | 29 public ScriptWrappable { |
29 DEFINE_WRAPPERTYPEINFO(); | 30 DEFINE_WRAPPERTYPEINFO(); |
30 | 31 |
31 public: | 32 public: |
32 static PushSubscription* Take(ScriptPromiseResolver*, | 33 static PushSubscription* Take(ScriptPromiseResolver*, |
33 std::unique_ptr<WebPushSubscription>, | 34 std::unique_ptr<WebPushSubscription>, |
34 ServiceWorkerRegistration*); | 35 ServiceWorkerRegistration*); |
35 static void Dispose(WebPushSubscription* subscription_raw); | 36 static void Dispose(WebPushSubscription* subscription_raw); |
36 | 37 |
37 virtual ~PushSubscription(); | 38 virtual ~PushSubscription(); |
38 | 39 |
39 KURL endpoint() const { return endpoint_; } | 40 KURL endpoint() const { return endpoint_; } |
| 41 DOMTimeStamp expirationTime(bool& is_null) const; |
40 | 42 |
41 PushSubscriptionOptions* options() const { return options_.Get(); } | 43 PushSubscriptionOptions* options() const { return options_.Get(); } |
42 | 44 |
43 DOMArrayBuffer* getKey(const AtomicString& name) const; | 45 DOMArrayBuffer* getKey(const AtomicString& name) const; |
44 ScriptPromise unsubscribe(ScriptState*); | 46 ScriptPromise unsubscribe(ScriptState*); |
45 | 47 |
46 ScriptValue toJSONForBinding(ScriptState*); | 48 ScriptValue toJSONForBinding(ScriptState*); |
47 | 49 |
48 DECLARE_TRACE(); | 50 DECLARE_TRACE(); |
49 | 51 |
50 private: | 52 private: |
51 PushSubscription(const WebPushSubscription&, ServiceWorkerRegistration*); | 53 PushSubscription(const WebPushSubscription&, ServiceWorkerRegistration*); |
52 | 54 |
53 KURL endpoint_; | 55 KURL endpoint_; |
54 | 56 |
55 Member<PushSubscriptionOptions> options_; | 57 Member<PushSubscriptionOptions> options_; |
56 | 58 |
57 Member<DOMArrayBuffer> p256dh_; | 59 Member<DOMArrayBuffer> p256dh_; |
58 Member<DOMArrayBuffer> auth_; | 60 Member<DOMArrayBuffer> auth_; |
59 | 61 |
60 Member<ServiceWorkerRegistration> service_worker_registration_; | 62 Member<ServiceWorkerRegistration> service_worker_registration_; |
61 }; | 63 }; |
62 | 64 |
63 } // namespace blink | 65 } // namespace blink |
64 | 66 |
65 #endif // PushSubscription_h | 67 #endif // PushSubscription_h |
OLD | NEW |