Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Check that if we loop prompts from a closed tab, they don't
* start showing up as window prompts.
*/
add_task(async function test_closed_tab_doesnt_show_prompt() {
let newWin = await BrowserTestUtils.openNewBrowserWindow();
// Get a promise for the initial, in-tab prompt:
let promptPromise = BrowserTestUtils.promiseAlertDialogOpen();
await ContentTask.spawn(newWin.gBrowser.selectedBrowser, [], function () {
// Don't want to block, so use setTimeout with 0 timeout:
content.setTimeout(
() =>
content.eval(
'let i = 0; while (!prompt("Prompts a lot!") && i++ < 10);'
),
0
);
});
// wait for the first prompt to have appeared:
await promptPromise;
// Now close the containing tab, and check for windowed prompts appearing.
let opened = false;
let obs = () => {
opened = true;
};
Services.obs.addObserver(obs, "domwindowopened");
registerCleanupFunction(() =>
Services.obs.removeObserver(obs, "domwindowopened")
);
await BrowserTestUtils.closeWindow(newWin);
ok(!opened, "Should not have opened a prompt when closing the main window.");
});