Index: content/test/data/background_sync/service_worker.js |
diff --git a/content/test/data/background_sync/service_worker.js b/content/test/data/background_sync/service_worker.js |
index 56be354933bffe02d4021c9b75ea32e6948e7641..68f57b55e5e45817b495c90f962a1ef605cac34d 100644 |
--- a/content/test/data/background_sync/service_worker.js |
+++ b/content/test/data/background_sync/service_worker.js |
@@ -17,7 +17,7 @@ var resolveCallback = null; |
var rejectCallback = null; |
this.onmessage = function(event) { |
- if (event.data === 'completeDelayedOneShot') { |
+ if (event.data['action'] === 'completeDelayedOneShot') { |
if (resolveCallback === null) { |
sendMessageToClients('sync', 'error - resolveCallback is null'); |
return; |
@@ -28,7 +28,7 @@ this.onmessage = function(event) { |
return; |
} |
- if (event.data === 'rejectDelayedOneShot') { |
+ if (event.data['action'] === 'rejectDelayedOneShot') { |
if (rejectCallback === null) { |
sendMessageToClients('sync', 'error - rejectCallback is null'); |
return; |
@@ -37,6 +37,21 @@ this.onmessage = function(event) { |
rejectCallback(); |
sendMessageToClients('sync', 'ok - delay rejected'); |
} |
+ |
+ if (event.data['action'] === 'notifyWhenDone') { |
+ var tag = event.data['tag']; |
+ registration.sync.getRegistration(tag) |
+ .then(function (syncRegistration) { |
+ sendMessageToClients('sync', 'ok - ' + tag + ' done'); |
+ return syncRegistration.done; |
+ }) |
+ .then(function(success) { |
+ sendMessageToClients('sync', tag + " done result: " + success); |
+ }, function(error) { |
+ sendMessageToClients('sync', tag + " done result: error"); |
+ }) |
+ .catch(sendSyncErrorToClients); |
+ } |
} |
this.onsync = function(event) { |
@@ -96,3 +111,7 @@ function sendMessageToClients(type, data) { |
console.log(error); |
}); |
} |
+ |
+function sendSyncErrorToClients(error) { |
+ sendMessageToClients('sync', error.name + ' - ' + error.message); |
+} |