| 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 7dfebe5351eb8f77521f05a649c260210c231df2..56be354933bffe02d4021c9b75ea32e6948e7641 100644
|
| --- a/content/test/data/background_sync/service_worker.js
|
| +++ b/content/test/data/background_sync/service_worker.js
|
| @@ -9,6 +9,7 @@
|
| // "delay" - Delays finishing the sync event with event.waitUntil.
|
| // Send a postMessage of "completeDelayedOneShot" to finish the
|
| // event.
|
| +// "unregister" - Unregisters the sync registration from within the sync event.
|
|
|
| 'use strict';
|
|
|
| @@ -39,6 +40,21 @@ this.onmessage = function(event) {
|
| }
|
|
|
| this.onsync = function(event) {
|
| + var eventProperties = [
|
| + // Extract name from toString result: "[object <Class>]"
|
| + Object.prototype.toString.call(event).match(/\s([a-zA-Z]+)/)[1],
|
| + (typeof event.waitUntil)
|
| + ];
|
| +
|
| + if (eventProperties[0] != 'SyncEvent') {
|
| + sendMessageToClients('sync', 'error - wrong event type');
|
| + return;
|
| + }
|
| +
|
| + if (eventProperties[1] != 'function') {
|
| + sendMessageToClients('sync', 'error - wrong wait until type');
|
| + }
|
| +
|
| if (event.registration === undefined) {
|
| sendMessageToClients('sync', 'error - event missing registration');
|
| return;
|
| @@ -60,6 +76,14 @@ this.onsync = function(event) {
|
| return;
|
| }
|
|
|
| + if (tag === 'unregister') {
|
| + event.waitUntil(event.registration.unregister()
|
| + .then(function() {
|
| + sendMessageToClients('sync', 'ok - unregister completed');
|
| + }));
|
| + return;
|
| + }
|
| +
|
| sendMessageToClients('sync', tag + ' fired');
|
| };
|
|
|
|
|