OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 var registerSyncOnServiceWorker = new Promise(function(resolve, reject) { |
| 6 var serviceWorker; |
| 7 navigator.serviceWorker.register('sw.js').then(function() { |
| 8 // Wait until the service worker is active. |
| 9 return navigator.serviceWorker.ready; |
| 10 }).then(function(registration) { |
| 11 serviceWorker = registration.active; |
| 12 return registration.sync.register('send-chats'); |
| 13 }).then(function() { |
| 14 resolve(serviceWorker); |
| 15 }).catch(function(err) { |
| 16 reject(err); |
| 17 }); |
| 18 }); |
| 19 |
| 20 window.runServiceWorker = function() { |
| 21 registerSyncOnServiceWorker.then(function(serviceWorker) { |
| 22 var mc = new MessageChannel(); |
| 23 // Called when ServiceWorker.onsync fires. |
| 24 mc.port1.onmessage = function(e) { |
| 25 if (e.data != 'SYNC: send-chats') { |
| 26 console.log('SW returned incorrect data: ' + e.data); |
| 27 chrome.test.sendMessage('FAIL'); // Fails the test fast. |
| 28 return; |
| 29 } |
| 30 chrome.test.sendMessage(e.data); |
| 31 }; |
| 32 serviceWorker.postMessage('connect', [mc.port2]); |
| 33 window.domAutomationController.send('SERVICE_WORKER_READY'); |
| 34 }).catch(function(err) { |
| 35 window.domAutomationController.send(err); |
| 36 }); |
| 37 }; |
OLD | NEW |