| <!DOCTYPE html> |
| <script src="test-helpers.sub.js"></script> |
| <script> |
| window.addEventListener('message', event => { |
| navigator.serviceWorker.getRegistration(event.data.options.scope) |
| .then(r => { |
| if (r) return r.unregister(); |
| }) |
| .then(() => navigator.serviceWorker.register(event.data.worker, |
| event.data.options)) |
| .then(r => new Promise(resolve => { |
| window.addEventListener('unload', () => r.unregister()); |
| var worker = r.installing; |
| worker.addEventListener('statechange', () => { |
| if (worker.state === 'activated') resolve(); |
| }); |
| })) |
| .then(() => event.source.postMessage('success', '*')) |
| .catch((e) => event.source.postMessage('failure:' + e, '*')); |
| }); |
| </script> |