Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/install-worker-helper.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/install-worker-helper.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/install-worker-helper.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1de9baffb756e809e3b6378d58cb02ff4aeb94a3 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/install-worker-helper.html |
@@ -0,0 +1,22 @@ |
+<!DOCTYPE html> |
+<script src="test-helpers.js"></script> |
+<script> |
+window.addEventListener('message', event => { |
+ var port = event.ports[0]; |
+ navigator.serviceWorker.getRegistration(event.data.options.scope) |
+ .then(r => { |
+ if (r) return r.unregister(); |
+ }) |
+ .then(() => navigator.serviceWorker.register(event.data.worker, |
+ event.data.options)) |
+ .then(r => new Promise(resolve => { |
+ window.addEventListener('unload', () => r.unregister()); |
+ var worker = r.installing; |
+ worker.addEventListener('statechange', () => { |
+ if (worker.state === 'activated') resolve(); |
+ }); |
+ })) |
+ .then(() => port.postMessage('success')) |
+ .catch((e) => port.postMessage('failure:' + e)); |
+ }); |
+</script> |