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