summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/WebKit/Source/modules/push_messaging/PushManager.cpp')
-rw-r--r--third_party/WebKit/Source/modules/push_messaging/PushManager.cpp51
1 files changed, 9 insertions, 42 deletions
diff --git a/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp b/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp
index 7d5eacd..0f5a2ff 100644
--- a/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp
+++ b/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp
@@ -34,29 +34,11 @@ WebPushProvider* pushProvider()
return webPushProvider;
}
-String bufferSourceToString(const ArrayBufferOrArrayBufferView& applicationServerKey, ExceptionState& exceptionState)
+WebPushSubscriptionOptions toWebPushSubscriptionOptions(const PushSubscriptionOptions& options)
{
- // Check the validity of the sender info. It must be a 65 byte unencrypted key,
- // which has the byte 0x04 as the first byte as a marker.
- char* input;
- int length;
- if (applicationServerKey.isArrayBuffer()) {
- input = static_cast<char*>(
- applicationServerKey.getAsArrayBuffer()->data());
- length = applicationServerKey.getAsArrayBuffer()->byteLength();
- } else if (applicationServerKey.isArrayBufferView()) {
- input = static_cast<char*>(
- applicationServerKey.getAsArrayBufferView()->buffer()->data());
- length = applicationServerKey.getAsArrayBufferView()->buffer()->byteLength();
- } else {
- ASSERT_NOT_REACHED();
- return String();
- }
-
- if (length == 65 && input[0] == 0x04)
- return WebString::fromUTF8(input, length);
- exceptionState.throwDOMException(InvalidAccessError, "The provided applicationServerKey is not valid.");
- return String();
+ WebPushSubscriptionOptions webOptions;
+ webOptions.userVisibleOnly = options.userVisibleOnly();
+ return webOptions;
}
} // namespace
@@ -67,26 +49,11 @@ PushManager::PushManager(ServiceWorkerRegistration* registration)
ASSERT(registration);
}
-WebPushSubscriptionOptions PushManager::toWebPushSubscriptionOptions(const PushSubscriptionOptions& options, ExceptionState& exceptionState)
-{
- WebPushSubscriptionOptions webOptions;
- webOptions.userVisibleOnly = options.userVisibleOnly();
- if (options.hasApplicationServerKey()) {
- webOptions.applicationServerKey = bufferSourceToString(options.applicationServerKey(),
- exceptionState);
- }
- return webOptions;
-}
-
-ScriptPromise PushManager::subscribe(ScriptState* scriptState, const PushSubscriptionOptions& options, ExceptionState& exceptionState)
+ScriptPromise PushManager::subscribe(ScriptState* scriptState, const PushSubscriptionOptions& options)
{
if (!m_registration->active())
return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(AbortError, "Subscription failed - no active Service Worker"));
- const WebPushSubscriptionOptions& webOptions = toWebPushSubscriptionOptions(options, exceptionState);
- if (exceptionState.hadException())
- return ScriptPromise();
-
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
ScriptPromise promise = resolver->promise();
@@ -97,9 +64,9 @@ ScriptPromise PushManager::subscribe(ScriptState* scriptState, const PushSubscri
Document* document = toDocument(scriptState->executionContext());
if (!document->domWindow() || !document->frame())
return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(InvalidStateError, "Document is detached from window."));
- PushController::clientFrom(document->frame()).subscribe(m_registration->webRegistration(), webOptions, new PushSubscriptionCallbacks(resolver, m_registration));
+ PushController::clientFrom(document->frame()).subscribe(m_registration->webRegistration(), toWebPushSubscriptionOptions(options), new PushSubscriptionCallbacks(resolver, m_registration));
} else {
- pushProvider()->subscribe(m_registration->webRegistration(), webOptions, new PushSubscriptionCallbacks(resolver, m_registration));
+ pushProvider()->subscribe(m_registration->webRegistration(), toWebPushSubscriptionOptions(options), new PushSubscriptionCallbacks(resolver, m_registration));
}
return promise;
@@ -114,7 +81,7 @@ ScriptPromise PushManager::getSubscription(ScriptState* scriptState)
return promise;
}
-ScriptPromise PushManager::permissionState(ScriptState* scriptState, const PushSubscriptionOptions& options, ExceptionState& exceptionState)
+ScriptPromise PushManager::permissionState(ScriptState* scriptState, const PushSubscriptionOptions& options)
{
if (scriptState->executionContext()->isDocument()) {
Document* document = toDocument(scriptState->executionContext());
@@ -125,7 +92,7 @@ ScriptPromise PushManager::permissionState(ScriptState* scriptState, const PushS
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
ScriptPromise promise = resolver->promise();
- pushProvider()->getPermissionStatus(m_registration->webRegistration(), toWebPushSubscriptionOptions(options, exceptionState), new PushPermissionStatusCallbacks(resolver));
+ pushProvider()->getPermissionStatus(m_registration->webRegistration(), toWebPushSubscriptionOptions(options), new PushPermissionStatusCallbacks(resolver));
return promise;
}