1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 const wdm = Cc["@mozilla.org/dom/workers/workerdebuggermanager;1"].getService(
6 Ci.nsIWorkerDebuggerManager
9 const BASE_URL = "chrome://mochitests/content/browser/dom/workers/test/";
10 const WORKER_URL = BASE_URL + "WorkerDebugger.initialize_es_worker.js";
12 BASE_URL + "WorkerDebugger.initialize_debugger_es_worker.js";
14 add_task(async function test() {
15 const onDbg = waitForRegister(WORKER_URL);
16 const worker = new Worker(WORKER_URL, { type: "module" });
18 info("Wait for worker message");
19 await new Promise(resolve => (worker.onmessage = resolve));
21 const dbg = await onDbg;
23 info("Calling WorkerDebugger::Initialize");
24 const onDebuggerScriptEvaluated = new Promise(resolve => {
27 is(msg, "debugger script ran");
28 dbg.removeListener(listener);
32 dbg.addListener(listener);
34 dbg.initialize(DEBUGGER_URL);
35 ok(true, "dbg.initialize didn't throw");
37 info("Waiting for debugger script to be evaluated and dispatching a message");
38 await onDebuggerScriptEvaluated;
41 function waitForRegister(url, dbgUrl) {
42 return new Promise(function (resolve) {
45 if (dbg.url !== url) {
48 ok(true, "Debugger with url " + url + " should be registered.");
49 wdm.removeListener(this);