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

Unified Diff: third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp

Issue 2481393002: [background-sync] Remove WebSyncError and SyncCallbacks (Closed)
Patch Set: Remove stray SyncError declaration Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp
diff --git a/third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp b/third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp
index 63229a7daf1e0c2fbd853d67b191ab69eff83068..817c5353761a90115b19f3dce46d9b24a0bfcb89 100644
--- a/third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp
+++ b/third_party/WebKit/Source/modules/background_sync/BackgroundSyncProvider.cpp
@@ -4,9 +4,12 @@
#include "modules/background_sync/BackgroundSyncProvider.h"
+#include "bindings/core/v8/ScriptPromiseResolver.h"
+#include "core/dom/DOMException.h"
+#include "core/dom/ExceptionCode.h"
+#include "platform/heap/Persistent.h"
#include "public/platform/InterfaceProvider.h"
#include "public/platform/Platform.h"
-#include "public/platform/modules/background_sync/WebSyncError.h"
#include "public/platform/modules/serviceworker/WebServiceWorkerRegistration.h"
#include "wtf/Functional.h"
@@ -15,24 +18,24 @@ namespace blink {
void BackgroundSyncProvider::registerBackgroundSync(
mojom::blink::SyncRegistrationPtr options,
WebServiceWorkerRegistration* serviceWorkerRegistration,
- std::unique_ptr<SyncRegistrationCallbacks> callbacks) {
+ ScriptPromiseResolver* resolver) {
DCHECK(options);
DCHECK(serviceWorkerRegistration);
- DCHECK(callbacks);
+ DCHECK(resolver);
int64_t serviceWorkerRegistrationId =
serviceWorkerRegistration->registrationId();
GetBackgroundSyncServicePtr()->Register(
std::move(options), serviceWorkerRegistrationId,
convertToBaseCallback(WTF::bind(&BackgroundSyncProvider::registerCallback,
- WTF::passed(std::move(callbacks)))));
+ wrapPersistent(resolver))));
}
void BackgroundSyncProvider::getRegistrations(
WebServiceWorkerRegistration* serviceWorkerRegistration,
- std::unique_ptr<SyncGetRegistrationsCallbacks> callbacks) {
+ ScriptPromiseResolver* resolver) {
DCHECK(serviceWorkerRegistration);
- DCHECK(callbacks);
+ DCHECK(resolver);
int64_t serviceWorkerRegistrationId =
serviceWorkerRegistration->registrationId();
@@ -40,57 +43,60 @@ void BackgroundSyncProvider::getRegistrations(
serviceWorkerRegistrationId,
convertToBaseCallback(
WTF::bind(&BackgroundSyncProvider::getRegistrationsCallback,
- WTF::passed(std::move(callbacks)))));
+ wrapPersistent(resolver))));
}
// static
void BackgroundSyncProvider::registerCallback(
- std::unique_ptr<SyncRegistrationCallbacks> callbacks,
+ ScriptPromiseResolver* resolver,
mojom::blink::BackgroundSyncError error,
mojom::blink::SyncRegistrationPtr options) {
// TODO(iclelland): Determine the correct error message to return in each case
switch (error) {
case mojom::blink::BackgroundSyncError::NONE:
- if (!options.is_null())
- callbacks->onSuccess(std::move(options));
+ if (!options) {
+ resolver->resolve(v8::Null(resolver->getScriptState()->isolate()));
+ return;
+ }
+ resolver->resolve();
break;
case mojom::blink::BackgroundSyncError::NOT_FOUND:
NOTREACHED();
break;
case mojom::blink::BackgroundSyncError::STORAGE:
- callbacks->onError(blink::WebSyncError(WebSyncError::ErrorTypeUnknown,
- "Background Sync is disabled."));
+ resolver->reject(
+ DOMException::create(UnknownError, "Background Sync is disabled."));
break;
case mojom::blink::BackgroundSyncError::NOT_ALLOWED:
- callbacks->onError(
- blink::WebSyncError(WebSyncError::ErrorTypeNoPermission,
- "Attempted to register a sync event without a "
- "window or registration tag too long."));
+ resolver->reject(
+ DOMException::create(InvalidAccessError,
+ "Attempted to register a sync event without a "
+ "window or registration tag too long."));
break;
case mojom::blink::BackgroundSyncError::PERMISSION_DENIED:
- callbacks->onError(blink::WebSyncError(
- WebSyncError::ErrorTypePermissionDenied, "Permission denied."));
+ resolver->reject(
+ DOMException::create(PermissionDeniedError, "Permission denied."));
break;
case mojom::blink::BackgroundSyncError::NO_SERVICE_WORKER:
- callbacks->onError(blink::WebSyncError(WebSyncError::ErrorTypeUnknown,
- "No service worker is active."));
+ resolver->reject(
+ DOMException::create(UnknownError, "No service worker is active."));
break;
}
}
// static
void BackgroundSyncProvider::getRegistrationsCallback(
- std::unique_ptr<SyncGetRegistrationsCallbacks> syncGetRegistrationCallbacks,
+ ScriptPromiseResolver* resolver,
mojom::blink::BackgroundSyncError error,
mojo::WTFArray<mojom::blink::SyncRegistrationPtr> registrations) {
// TODO(iclelland): Determine the correct error message to return in each case
switch (error) {
case mojom::blink::BackgroundSyncError::NONE: {
- WebVector<mojom::blink::SyncRegistration*> results(registrations.size());
- for (size_t i = 0; i < registrations.size(); ++i) {
- results[i] = registrations[i].get();
+ Vector<String> tags;
+ for (const auto& r : registrations.storage()) {
+ tags.append(r->tag);
}
- syncGetRegistrationCallbacks->onSuccess(results);
+ resolver->resolve(tags);
break;
}
case mojom::blink::BackgroundSyncError::NOT_FOUND:
@@ -101,12 +107,12 @@ void BackgroundSyncProvider::getRegistrationsCallback(
NOTREACHED();
break;
case mojom::blink::BackgroundSyncError::STORAGE:
- syncGetRegistrationCallbacks->onError(blink::WebSyncError(
- WebSyncError::ErrorTypeUnknown, "Background Sync is disabled."));
+ resolver->reject(
+ DOMException::create(UnknownError, "Background Sync is disabled."));
break;
case mojom::blink::BackgroundSyncError::NO_SERVICE_WORKER:
- syncGetRegistrationCallbacks->onError(blink::WebSyncError(
- WebSyncError::ErrorTypeUnknown, "No service worker is active."));
+ resolver->reject(
+ DOMException::create(UnknownError, "No service worker is active."));
break;
}
}

Powered by Google App Engine
This is Rietveld 408576698