OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="test-helpers.js"></script> | 2 <script src="test-helpers.sub.js"></script> |
3 <script> | 3 <script> |
4 window.addEventListener('message', event => { | 4 window.addEventListener('message', event => { |
5 var port = event.ports[0]; | |
6 navigator.serviceWorker.getRegistration(event.data.options.scope) | 5 navigator.serviceWorker.getRegistration(event.data.options.scope) |
7 .then(r => { | 6 .then(r => { |
8 if (r) return r.unregister(); | 7 if (r) return r.unregister(); |
9 }) | 8 }) |
10 .then(() => navigator.serviceWorker.register(event.data.worker, | 9 .then(() => navigator.serviceWorker.register(event.data.worker, |
11 event.data.options)) | 10 event.data.options)) |
12 .then(r => new Promise(resolve => { | 11 .then(r => new Promise(resolve => { |
13 window.addEventListener('unload', () => r.unregister()); | 12 window.addEventListener('unload', () => r.unregister()); |
14 var worker = r.installing; | 13 var worker = r.installing; |
15 worker.addEventListener('statechange', () => { | 14 worker.addEventListener('statechange', () => { |
16 if (worker.state === 'activated') resolve(); | 15 if (worker.state === 'activated') resolve(); |
17 }); | 16 }); |
18 })) | 17 })) |
19 .then(() => port.postMessage('success')) | 18 .then(() => event.source.postMessage('success', '*')) |
20 .catch((e) => port.postMessage('failure:' + e)); | 19 .catch((e) => event.source.postMessage('failure:' + e, '*')); |
21 }); | 20 }); |
22 </script> | 21 </script> |
OLD | NEW |