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'); |
+}); |