Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/service_worker/update/v2/background.js |
| diff --git a/chrome/test/data/extensions/api_test/service_worker/update/v2/background.js b/chrome/test/data/extensions/api_test/service_worker/update/v2/background.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5767a66396da9c6dd6bf441a0dcea6f08b6b4d52 |
| --- /dev/null |
| +++ b/chrome/test/data/extensions/api_test/service_worker/update/v2/background.js |
| @@ -0,0 +1,37 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +var controllerChangePromise = new Promise(function(resolve, reject) { |
| + navigator.serviceWorker.oncontrollerchange = function(e) { |
| + navigator.serviceWorker.ready.then(function(registration) { |
| + resolve(registration.active); |
| + }).catch(function(err) { |
| + reject('oncontrollerchange failure'); |
| + }); |
| + }; |
| +}); |
| + |
| +var registerServiceWorkerPromise = new Promise(function(resolve, reject) { |
| + 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.
|
| + return navigator.serviceWorker.ready; |
| + }).then(function(registration) { |
| + resolve(registration.active); |
| + }).catch(function(err) { |
| + reject(err); |
| + }); |
| +}); |
| + |
| +Promise.all([controllerChangePromise, registerServiceWorkerPromise]) |
| + .then(function(results) { |
| + var serviceWorker = results[0]; |
| + var channel = new MessageChannel(); |
| + channel.port1.onmessage = function(e) { |
| + 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.
|
| + chrome.test.sendMessage(e.data); |
| + }; |
| + serviceWorker.postMessage('ping', [channel.port2]); |
| +}).catch(function(err) { |
| + console.log(err); |
| + chrome.test.sendMessage('FAILURE_V2'); |
| +}); |