| Index: Source/modules/background_sync/SyncRegistration.cpp
|
| diff --git a/Source/modules/background_sync/SyncRegistration.cpp b/Source/modules/background_sync/SyncRegistration.cpp
|
| index 7867442979e5518eb17c5749dac36549ebaf22a7..fa71ba8060507250ba9527160730d63a08e5797d 100644
|
| --- a/Source/modules/background_sync/SyncRegistration.cpp
|
| +++ b/Source/modules/background_sync/SyncRegistration.cpp
|
| @@ -7,6 +7,8 @@
|
|
|
| #include "bindings/core/v8/CallbackPromiseAdapter.h"
|
| #include "bindings/core/v8/ScriptPromiseResolver.h"
|
| +#include "core/dom/DOMException.h"
|
| +#include "core/dom/ExceptionCode.h"
|
| #include "modules/background_sync/SyncCallbacks.h"
|
| #include "modules/background_sync/SyncError.h"
|
| #include "modules/background_sync/SyncRegistrationOptions.h"
|
| @@ -22,27 +24,8 @@ SyncRegistration* SyncRegistration::take(ScriptPromiseResolver*, WebSyncRegistra
|
| {
|
| OwnPtr<WebSyncRegistration> registration = adoptPtr(syncRegistration);
|
| SyncRegistrationOptions options = SyncRegistrationOptions();
|
| - options.setAllowOnBattery(syncRegistration->allowOnBattery);
|
| - options.setId(syncRegistration->id);
|
| - options.setIdleRequired(syncRegistration->idleRequired);
|
| - options.setMaxDelay(syncRegistration->maxDelayMs);
|
| - options.setMinDelay(syncRegistration->minDelayMs);
|
| - options.setMinPeriod(syncRegistration->minPeriodMs);
|
| - switch (syncRegistration->minRequiredNetwork) {
|
| - case WebSyncRegistration::NetworkType::NetworkTypeAny:
|
| - options.setMinRequiredNetwork("network-any");
|
| - break;
|
| - case WebSyncRegistration::NetworkType::NetworkTypeOffline:
|
| - options.setMinRequiredNetwork("network-offline");
|
| - break;
|
| - case WebSyncRegistration::NetworkType::NetworkTypeOnline:
|
| - options.setMinRequiredNetwork("network-online");
|
| - break;
|
| - case WebSyncRegistration::NetworkType::NetworkTypeNonMobile:
|
| - options.setMinRequiredNetwork("network-non-mobile");
|
| - break;
|
| - }
|
| - return new SyncRegistration(options, serviceWorkerRegistration);
|
| + options.setTag(syncRegistration->tag);
|
| + return new SyncRegistration(syncRegistration->id, options, serviceWorkerRegistration);
|
| }
|
|
|
| void SyncRegistration::dispose(WebSyncRegistration* syncRegistration)
|
| @@ -51,14 +34,9 @@ void SyncRegistration::dispose(WebSyncRegistration* syncRegistration)
|
| delete syncRegistration;
|
| }
|
|
|
| -SyncRegistration::SyncRegistration(const SyncRegistrationOptions& options, ServiceWorkerRegistration* serviceWorkerRegistration)
|
| - : m_allowOnBattery(options.allowOnBattery())
|
| - , m_id(options.id())
|
| - , m_idleRequired(options.idleRequired())
|
| - , m_maxDelay(options.maxDelay())
|
| - , m_minDelay(options.minDelay())
|
| - , m_minPeriod(options.minPeriod())
|
| - , m_minRequiredNetwork(options.minRequiredNetwork())
|
| +SyncRegistration::SyncRegistration(int64_t id, const SyncRegistrationOptions& options, ServiceWorkerRegistration* serviceWorkerRegistration)
|
| + : m_id(id)
|
| + , m_tag(options.tag())
|
| , m_serviceWorkerRegistration(serviceWorkerRegistration)
|
| {
|
| }
|
| @@ -69,21 +47,22 @@ SyncRegistration::~SyncRegistration()
|
|
|
| ScriptPromise SyncRegistration::unregister(ScriptState* scriptState)
|
| {
|
| + if (m_id == WebSyncRegistration::UNREGISTERED_SYNC_ID)
|
| + return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(AbortError, "Operation failed - not a valid registration object"));
|
| +
|
| RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| ScriptPromise promise = resolver->promise();
|
|
|
| WebSyncProvider* webSyncProvider = Platform::current()->backgroundSyncProvider();
|
| ASSERT(webSyncProvider);
|
|
|
| - webSyncProvider->unregisterBackgroundSync(m_id, m_serviceWorkerRegistration->webRegistration(), new SyncUnregistrationCallbacks(resolver, m_serviceWorkerRegistration));
|
| + webSyncProvider->unregisterBackgroundSync(WebSyncRegistration::PeriodicityOneShot, m_id, m_tag, m_serviceWorkerRegistration->webRegistration(), new SyncUnregistrationCallbacks(resolver, m_serviceWorkerRegistration));
|
|
|
| return promise;
|
| }
|
|
|
| DEFINE_TRACE(SyncRegistration)
|
| {
|
| - visitor->trace(m_allowOnBattery);
|
| - visitor->trace(m_idleRequired);
|
| visitor->trace(m_serviceWorkerRegistration);
|
| }
|
|
|
|
|