Index: chrome/test/data/extensions/api_test/service_worker/sync/page.js |
diff --git a/chrome/test/data/extensions/api_test/service_worker/sync/page.js b/chrome/test/data/extensions/api_test/service_worker/sync/page.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9bac72b2f8dd0f68ad461f5e8f1479417907297b |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/service_worker/sync/page.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 registerSyncOnServiceWorker = new Promise(function(resolve, reject) { |
+ var serviceWorker; |
+ navigator.serviceWorker.register('sw.js').then(function() { |
+ // Wait until the service worker is active. |
+ return navigator.serviceWorker.ready; |
+ }).then(function(registration) { |
+ serviceWorker = registration.active; |
+ return registration.sync.register('send-chats'); |
+ }).then(function() { |
+ resolve(serviceWorker); |
+ }).catch(function(err) { |
+ reject(err); |
+ }); |
+}); |
+ |
+window.runServiceWorker = function() { |
+ registerSyncOnServiceWorker.then(function(serviceWorker) { |
+ var mc = new MessageChannel(); |
+ // Called when ServiceWorker.onsync fires. |
+ mc.port1.onmessage = function(e) { |
+ if (e.data != 'SYNC: send-chats') { |
+ console.log('SW returned incorrect data: ' + e.data); |
+ chrome.test.sendMessage('FAIL'); // Fails the test fast. |
+ return; |
+ } |
+ chrome.test.sendMessage(e.data); |
+ }; |
+ serviceWorker.postMessage('connect', [mc.port2]); |
+ window.domAutomationController.send('SERVICE_WORKER_READY'); |
+ }).catch(function(err) { |
+ window.domAutomationController.send(err); |
+ }); |
+}; |