34 lines
952 B
JavaScript
34 lines
952 B
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
SimpleTest.requestFlakyTimeout(
|
|
"The test needs to let objects die asynchronously."
|
|
);
|
|
|
|
add_task(async function test_accessing_shistory() {
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(
|
|
gBrowser,
|
|
"about:preferences"
|
|
);
|
|
let sh = tab.linkedBrowser.browsingContext.sessionHistory;
|
|
ok(sh, "Should have SessionHistory object");
|
|
gBrowser.removeTab(tab);
|
|
tab = null;
|
|
for (let i = 0; i < 5; ++i) {
|
|
SpecialPowers.Services.obs.notifyObservers(
|
|
null,
|
|
"memory-pressure",
|
|
"heap-minimize"
|
|
);
|
|
SpecialPowers.DOMWindowUtils.garbageCollect();
|
|
await new Promise(function (r) {
|
|
// eslint-disable-next-line mozilla/no-arbitrary-setTimeout
|
|
setTimeout(r, 50);
|
|
});
|
|
}
|
|
|
|
try {
|
|
sh.reloadCurrentEntry();
|
|
} catch (ex) {}
|
|
ok(true, "This test shouldn't crash.");
|
|
});
|