blob: 4db32866910b16ec0289c561a121280f9ad04fb8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"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.");
});
|