| self.onmessage = event => { |
| // Checking for a particular value, so more tests can be added in future. |
| if (event.data !== 'test-shownotification') return; |
| |
| // Random number, so we can identify the notification we create. |
| const random = Math.random().toString(); |
| const start = Date.now(); |
| |
| event.waitUntil( |
| self.registration.showNotification('test', { |
| tag: random, |
| // ?pipe=trickle(d2) delays the icon request by two seconds |
| icon: 'icon.png?pipe=trickle(d2)' |
| }).then(() => { |
| const resolveDuration = Date.now() - start; |
| |
| return self.registration.getNotifications().then(notifications => { |
| event.source.postMessage({ |
| type: 'notification-data', |
| resolveDuration, |
| // Check if our notification is in notifications |
| notificationReturned: notifications.some(n => n.tag == random) |
| }); |
| }); |
| }) |
| ); |
| }; |