summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/serviceworkers/blocking_install_event_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/serviceworkers/blocking_install_event_worker.js')
-rw-r--r--dom/workers/test/serviceworkers/blocking_install_event_worker.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/dom/workers/test/serviceworkers/blocking_install_event_worker.js b/dom/workers/test/serviceworkers/blocking_install_event_worker.js
new file mode 100644
index 000000000..0bc6f7b7f
--- /dev/null
+++ b/dom/workers/test/serviceworkers/blocking_install_event_worker.js
@@ -0,0 +1,23 @@
+function postMessageToTest(msg) {
+ return clients.matchAll({ includeUncontrolled: true })
+ .then(list => {
+ for (var client of list) {
+ if (client.url.endsWith('test_install_event_gc.html')) {
+ client.postMessage(msg);
+ break;
+ }
+ }
+ });
+}
+
+addEventListener('install', evt => {
+ // This must be a simple promise to trigger the CC failure.
+ evt.waitUntil(new Promise(function() { }));
+ postMessageToTest({ type: 'INSTALL_EVENT' });
+});
+
+addEventListener('message', evt => {
+ if (evt.data.type === 'ping') {
+ postMessageToTest({ type: 'pong' });
+ }
+});