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

Unified Diff: Source/modules/background_sync/SyncRegistration.cpp

Issue 1096503002: [Background Sync] Converting Blink code to the MVP API (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Unregister method requires the sync registration tag Created 5 years, 8 months 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: 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);
}
« no previous file with comments | « Source/modules/background_sync/SyncRegistration.h ('k') | Source/modules/background_sync/SyncRegistration.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698