diff options
Diffstat (limited to 'dom/tests/mochitest/fetch/nested_worker_wrapper.js')
-rw-r--r-- | dom/tests/mochitest/fetch/nested_worker_wrapper.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dom/tests/mochitest/fetch/nested_worker_wrapper.js b/dom/tests/mochitest/fetch/nested_worker_wrapper.js new file mode 100644 index 0000000000..1a14cf06d9 --- /dev/null +++ b/dom/tests/mochitest/fetch/nested_worker_wrapper.js @@ -0,0 +1,32 @@ +function getScriptUrl() { + return new URL(location.href).searchParams.get("script"); +} + +// Hold the nested worker alive until this parent worker closes. +var worker; + +addEventListener("message", function nestedWorkerWrapperOnMessage(evt) { + removeEventListener("message", nestedWorkerWrapperOnMessage); + + worker = new Worker("worker_wrapper.js?script=" + getScriptUrl()); + + worker.addEventListener("message", function (evt) { + self.postMessage({ + context: "NestedWorker", + type: evt.data.type, + status: evt.data.status, + msg: evt.data.msg, + }); + }); + + worker.addEventListener("error", function (evt) { + self.postMessage({ + context: "NestedWorker", + type: "status", + status: false, + msg: "Nested worker error: " + evt.message, + }); + }); + + worker.postMessage(evt.data); +}); |