| OLD | NEW |
| 1 self.onmessage = function(e) { | 1 self.onmessage = function(e) { |
| 2 self.clients.matchAll().then(function(clients) { | 2 e.waitUntil(self.clients.matchAll().then(function(clients) { |
| 3 clients.forEach(function(client) { | 3 clients.forEach(function(client) { |
| 4 var messageChannel = new MessageChannel(); | 4 var messageChannel = new MessageChannel(); |
| 5 messageChannel.port1.onmessage = | 5 messageChannel.port1.onmessage = |
| 6 onMessageViaMessagePort.bind(null, client); | 6 onMessageViaMessagePort.bind(null, messageChannel.port1); |
| 7 client.postMessage({port: messageChannel.port2}, | 7 client.postMessage(undefined, [messageChannel.port2]); |
| 8 [messageChannel.port2]); | |
| 9 }); | 8 }); |
| 10 }); | 9 })); |
| 11 }; | 10 }; |
| 12 | 11 |
| 13 function onMessageViaMessagePort(client, e) { | 12 function onMessageViaMessagePort(port, e) { |
| 14 var message = e.data; | 13 var message = e.data; |
| 15 if ('value' in message) { | 14 if ('value' in message) { |
| 16 client.postMessage({ack: 'Acking value: ' + message.value}); | 15 port.postMessage({ack: 'Acking value: ' + message.value}); |
| 17 } else if ('done' in message) { | 16 } else if ('done' in message) { |
| 18 client.postMessage({done: true}); | 17 port.postMessage({done: true}); |
| 19 } | 18 } |
| 20 } | 19 } |
| OLD | NEW |