| OLD | NEW |
| 1 // TODO(nhiroki): stop using global states because service workers can be killed |
| 2 // at any point (http://crbug.com/558244). |
| 1 self.state = 'starting'; | 3 self.state = 'starting'; |
| 2 | 4 |
| 3 self.addEventListener('install', function() { | 5 self.addEventListener('install', function() { |
| 4 self.state = 'installing'; | 6 self.state = 'installing'; |
| 5 }); | 7 }); |
| 6 | 8 |
| 7 self.addEventListener('activate', function() { | 9 self.addEventListener('activate', function() { |
| 8 self.state = 'activating'; | 10 self.state = 'activating'; |
| 9 }); | 11 }); |
| 10 | 12 |
| 11 self.addEventListener('message', function(event) { | 13 self.addEventListener('message', function(event) { |
| 12 var port = event.data.port; | 14 var port = event.data.port; |
| 13 if (self.state !== 'installing') { | 15 if (self.state !== 'installing') { |
| 14 port.postMessage('FAIL: Worker should be waiting in installed state'); | 16 port.postMessage('FAIL: Worker should be waiting in installed state'); |
| 15 return; | 17 return; |
| 16 } | 18 } |
| 17 self.skipWaiting() | 19 event.waitUntil(self.skipWaiting() |
| 18 .then(function(result) { | 20 .then(function(result) { |
| 19 if (result !== undefined) { | 21 if (result !== undefined) { |
| 20 port.postMessage('FAIL: Promise should be resolved with undefined'); | 22 port.postMessage('FAIL: Promise should be resolved with undefined'); |
| 21 return; | 23 return; |
| 22 } | 24 } |
| 23 if (self.state !== 'activating') { | 25 if (self.state !== 'activating') { |
| 24 port.postMessage( | 26 port.postMessage( |
| 25 'FAIL: Promise should be resolved after worker activated'); | 27 'FAIL: Promise should be resolved after worker activated'); |
| 26 return; | 28 return; |
| 27 } | 29 } |
| 28 port.postMessage('PASS'); | 30 port.postMessage('PASS'); |
| 29 }) | 31 }) |
| 30 .catch(function(e) { | 32 .catch(function(e) { |
| 31 port.postMessage('FAIL: unexpected exception: ' + e); | 33 port.postMessage('FAIL: unexpected exception: ' + e); |
| 32 }); | 34 })); |
| 33 }); | 35 }); |
| OLD | NEW |