Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
const { Subprocess } = ChromeUtils.importESModule(
"resource://gre/modules/Subprocess.sys.mjs"
);
// Re-launches the current instance which will send arguments to the current
// instance via the remote system/
async function execRemote(args) {
let process = await Subprocess.call({
command: Services.dirsvc.get("XREExeF", Ci.nsIFile).path,
arguments: ["--profile", PathUtils.profileDir, ...args],
});
let { exitCode } = await process.wait();
Assert.equal(exitCode, 0, "Should have exited normally");
}
add_task(async function test() {
// A URL should open a new tab in the current window.
let newTabOpened = BrowserTestUtils.waitForNewTab(
gBrowser,
true
);
await execRemote(["https://example.org/"]);
Assert.ok(true, "Successfully sent remote message");
let newTab = await newTabOpened;
BrowserTestUtils.removeTab(newTab);
// A blank command line should open a new window.
let newWinOpened = BrowserTestUtils.waitForNewWindow();
await execRemote([]);
Assert.ok(true, "Successfully sent remote message");
let newWindow = await newWinOpened;
await BrowserTestUtils.closeWindow(newWindow);
});