| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| let messagePort = null; |
| |
| self.addEventListener('message', event => { |
| messagePort = event.data; |
| messagePort.postMessage('ready'); |
| }); |
| |
| self.addEventListener('sync', async event => { |
| const onSync = async () => { |
| switch (event.tag) { |
| case 'tagSucceedsSync': |
| messagePort.postMessage('onsync: ' + event.tag); |
| return; |
| case 'tagFailsSync': |
| throw 'Try again'; |
| } |
| }; |
| event.waitUntil(onSync()); |
| }); |
| |
| self.addEventListener('periodicsync', event => { |
| const onPeriodicSync = async () => { |
| switch (event.tag) { |
| case 'tagSucceedsSync': |
| messagePort.postMessage('onperiodicsync: ' + event.tag); |
| return; |
| case 'tagFailsSync': |
| messagePort.postMessage('failed periodicsync: '+ event.tag); |
| throw 'Try again'; |
| } |
| }; |
| event.waitUntil(onPeriodicSync()); |
| }); |