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 controllerChangePromise = new Promise(function(resolve, reject) { | |
6 navigator.serviceWorker.oncontrollerchange = function(e) { | |
7 navigator.serviceWorker.ready.then(function(registration) { | |
8 resolve(registration.active); | |
9 }).catch(function(err) { | |
10 reject('oncontrollerchange failure'); | |
11 }); | |
12 }; | |
13 }); | |
14 | |
15 var registerServiceWorkerPromise = new Promise(function(resolve, reject) { | |
16 navigator.serviceWorker.register('sw.js').then(function() { | |
falken
2015/12/09 02:31:41
Since you're testing update, I would just get rid
Devlin
2015/12/09 17:09:07
+1. If calling register with the same script url i
lazyboy
2015/12/09 18:55:57
Done.
lazyboy
2015/12/09 18:55:57
Done.
| |
17 return navigator.serviceWorker.ready; | |
18 }).then(function(registration) { | |
19 resolve(registration.active); | |
20 }).catch(function(err) { | |
21 reject(err); | |
22 }); | |
23 }); | |
24 | |
25 Promise.all([controllerChangePromise, registerServiceWorkerPromise]) | |
26 .then(function(results) { | |
27 var serviceWorker = results[0]; | |
28 var channel = new MessageChannel(); | |
29 channel.port1.onmessage = function(e) { | |
30 console.log('Message received from SW: ' + e.data); | |
Devlin
2015/12/09 17:09:07
chrome.test.log (or remove)
lazyboy
2015/12/09 18:55:58
Done.
| |
31 chrome.test.sendMessage(e.data); | |
32 }; | |
33 serviceWorker.postMessage('ping', [channel.port2]); | |
34 }).catch(function(err) { | |
35 console.log(err); | |
36 chrome.test.sendMessage('FAILURE_V2'); | |
37 }); | |
OLD | NEW |