Index: Source/modules/push_messaging/PushSubscription.cpp |
diff --git a/Source/modules/push_messaging/PushSubscription.cpp b/Source/modules/push_messaging/PushSubscription.cpp |
index e006eeaa4591de35bd57d46cbb36c09ea41362a5..cee79a21a6e1f1dc9b2a0b8b8c803267820114d1 100644 |
--- a/Source/modules/push_messaging/PushSubscription.cpp |
+++ b/Source/modules/push_messaging/PushSubscription.cpp |
@@ -20,7 +20,7 @@ namespace blink { |
PushSubscription* PushSubscription::take(ScriptPromiseResolver*, WebPushSubscription* pushSubscription, ServiceWorkerRegistration* serviceWorkerRegistration) |
{ |
OwnPtr<WebPushSubscription> subscription = adoptPtr(pushSubscription); |
- return new PushSubscription(subscription->endpoint, serviceWorkerRegistration); |
+ return new PushSubscription(*subscription, serviceWorkerRegistration); |
} |
void PushSubscription::dispose(WebPushSubscription* pushSubscription) |
@@ -29,8 +29,9 @@ void PushSubscription::dispose(WebPushSubscription* pushSubscription) |
delete pushSubscription; |
} |
-PushSubscription::PushSubscription(const KURL& endpoint, ServiceWorkerRegistration* serviceWorkerRegistration) |
- : m_endpoint(endpoint) |
+PushSubscription::PushSubscription(const WebPushSubscription& subscription, ServiceWorkerRegistration* serviceWorkerRegistration) |
+ : m_endpoint(subscription.endpoint) |
+ , m_curve25519dh(DOMArrayBuffer::create(subscription.curve25519dh.data(), subscription.curve25519dh.size())) |
, m_serviceWorkerRegistration(serviceWorkerRegistration) |
{ |
} |
@@ -44,6 +45,11 @@ KURL PushSubscription::endpoint() const |
return m_endpoint; |
} |
+PassRefPtr<DOMArrayBuffer> PushSubscription::curve25519dh() const |
+{ |
+ return m_curve25519dh; |
+} |
+ |
ScriptPromise PushSubscription::unsubscribe(ScriptState* scriptState) |
{ |
RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
@@ -61,6 +67,9 @@ ScriptValue PushSubscription::toJSONForBinding(ScriptState* scriptState) |
V8ObjectBuilder result(scriptState); |
result.addString("endpoint", endpoint()); |
+ // TODO(peter): Include |curve25519dh| in the serialized JSON blob if the intended |
+ // serialization behavior gets defined in the spec. |
+ |
return result.scriptValue(); |
} |