37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
//
|
|
// Try to open a tab. This provides code coverage for a few things,
|
|
// although currently there's no automated functional test of correctness:
|
|
//
|
|
// * On opt builds, when the tab is closed and the process exits, it
|
|
// will hang for 3s and the parent will kill it after 2s.
|
|
//
|
|
// * On debug[*] builds, the parent process will wait until the
|
|
// process exits normally; but also, on browser shutdown, the
|
|
// preallocated content processes will block parent shutdown in
|
|
// WillDestroyCurrentMessageLoop.
|
|
//
|
|
// [*] Also sanitizer and code coverage builds.
|
|
//
|
|
|
|
add_task(async function () {
|
|
await BrowserTestUtils.withNewTab(
|
|
{
|
|
gBrowser,
|
|
url: "https://example.com/",
|
|
forceNewProcess: true,
|
|
},
|
|
async function () {
|
|
// browser.frameLoader.remoteTab.osPid is the child pid; once we
|
|
// have a way to get notifications about child process termination
|
|
// events, that could be useful.
|
|
ok(true, "Browser isn't broken");
|
|
}
|
|
);
|
|
// eslint-disable-next-line mozilla/no-arbitrary-setTimeout
|
|
await new Promise(resolve => setTimeout(resolve, 4000));
|
|
ok(true, "Still running after child process (hopefully) exited");
|
|
});
|