Index: chrome/test/data/extensions/api_test/service_worker/content_script_fetch/controlled_page/register_sw.js |
diff --git a/chrome/test/data/extensions/api_test/service_worker/content_script_fetch/controlled_page/register_sw.js b/chrome/test/data/extensions/api_test/service_worker/content_script_fetch/controlled_page/register_sw.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7e5c46f4c510d2d00e8ed164df87202e95d84958 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/service_worker/content_script_fetch/controlled_page/register_sw.js |
@@ -0,0 +1,27 @@ |
+// 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. |
+ |
+function register() { |
+ var script = './sw.js'; |
+ var scope = './'; |
+ navigator.serviceWorker.register(script, {scope: scope}) |
+ .then(function() { return navigator.serviceWorker.ready; }) |
+ .then(function(registration) { |
+ var channel = new MessageChannel(); |
+ var saw_message = new Promise(function(resolve, reject) { |
+ channel.port1.onmessage = function (e) { |
+ if (e.data == 'clients claimed') |
+ resolve(); |
+ else |
+ reject(e.data) |
+ }; |
+ }); |
+ registration.active.postMessage({port: channel.port2}, [channel.port2]); |
+ return saw_message; |
+ }) |
+ .then(function() { return fetch('./sw_controlled_check'); }) |
+ .then(function(res) { return res.text(); }) |
+ .then(function(txt) { window.domAutomationController.send(txt); }) |
+ .catch(function(e) { window.domAutomationController.send('Fail: ' + e); }); |
+} |