Index: third_party/WebKit/Source/modules/push_messaging/PushManager.cpp |
diff --git a/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp b/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp |
index b51e33876e864484b7b8bdecfe5a8baf5c3fdcd2..221c6c324d382b9a9734c10724118528c9996235 100644 |
--- a/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp |
+++ b/third_party/WebKit/Source/modules/push_messaging/PushManager.cpp |
@@ -17,6 +17,7 @@ |
#include "modules/push_messaging/PushSubscription.h" |
#include "modules/push_messaging/PushSubscriptionCallbacks.h" |
#include "modules/push_messaging/PushSubscriptionOptions.h" |
+#include "modules/push_messaging/PushSubscriptionOptionsInit.h" |
#include "modules/serviceworkers/ServiceWorkerRegistration.h" |
#include "public/platform/Platform.h" |
#include "public/platform/modules/push_messaging/WebPushClient.h" |
@@ -28,8 +29,6 @@ |
namespace blink { |
namespace { |
-const int kMaxApplicationServerKeyLength = 255; |
- |
WebPushProvider* pushProvider() |
{ |
WebPushProvider* webPushProvider = Platform::current()->pushProvider(); |
@@ -37,34 +36,6 @@ WebPushProvider* pushProvider() |
return webPushProvider; |
} |
-String bufferSourceToString(const ArrayBufferOrArrayBufferView& applicationServerKey, ExceptionState& exceptionState) |
-{ |
- // 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. |
- unsigned char* input; |
- int length; |
- if (applicationServerKey.isArrayBuffer()) { |
- input = static_cast<unsigned char*>( |
- applicationServerKey.getAsArrayBuffer()->data()); |
- length = applicationServerKey.getAsArrayBuffer()->byteLength(); |
- } else if (applicationServerKey.isArrayBufferView()) { |
- input = static_cast<unsigned char*>( |
- applicationServerKey.getAsArrayBufferView()->buffer()->data()); |
- length = applicationServerKey.getAsArrayBufferView()->buffer()->byteLength(); |
- } else { |
- NOTREACHED(); |
- return String(); |
- } |
- |
- // If the key is valid, just treat it as a string of bytes and pass it to |
- // the push service. |
- if (length <= kMaxApplicationServerKeyLength) |
- return WebString::fromLatin1(input, length); |
- |
- exceptionState.throwDOMException(InvalidAccessError, "The provided applicationServerKey is not valid."); |
- return String(); |
-} |
- |
} // namespace |
PushManager::PushManager(ServiceWorkerRegistration* registration) |
@@ -73,23 +44,12 @@ PushManager::PushManager(ServiceWorkerRegistration* registration) |
DCHECK(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 PushSubscriptionOptionsInit& options, ExceptionState& exceptionState) |
{ |
if (!m_registration->active()) |
return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(AbortError, "Subscription failed - no active Service Worker")); |
- const WebPushSubscriptionOptions& webOptions = toWebPushSubscriptionOptions(options, exceptionState); |
+ const WebPushSubscriptionOptions& webOptions = PushSubscriptionOptions::toWeb(options, exceptionState); |
if (exceptionState.hadException()) |
return ScriptPromise(); |
@@ -120,7 +80,7 @@ ScriptPromise PushManager::getSubscription(ScriptState* scriptState) |
return promise; |
} |
-ScriptPromise PushManager::permissionState(ScriptState* scriptState, const PushSubscriptionOptions& options, ExceptionState& exceptionState) |
+ScriptPromise PushManager::permissionState(ScriptState* scriptState, const PushSubscriptionOptionsInit& options, ExceptionState& exceptionState) |
{ |
if (scriptState->getExecutionContext()->isDocument()) { |
Document* document = toDocument(scriptState->getExecutionContext()); |
@@ -131,7 +91,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(), PushSubscriptionOptions::toWeb(options, exceptionState), new PushPermissionStatusCallbacks(resolver)); |
return promise; |
} |