зеркало из https://github.com/mozilla/gecko-dev.git
64 строки
2.1 KiB
HTML
64 строки
2.1 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Evict a page from bfcache</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
|
|
<script>
|
|
/*
|
|
* This test checks that a page can be evicted from bfcache. Sending a
|
|
* message to an open BroadcastChannel is used for this.
|
|
*
|
|
* First the test opens a window and loads a page there. Another page is then
|
|
* loaded and then session history is navigated back to check if bfcache is
|
|
* enabled. If not, close message is sent to close the opened window and this
|
|
* controller page will finish the test.
|
|
* If bfcache is enabled, session history goes forward, but the
|
|
* BroadcastChannel in the page isn't closed. Then sending the message to go
|
|
* back again should evict the bfcached page.
|
|
* Close message is sent and window closed and test finishes.
|
|
*/
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
var bc = new BroadcastChannel("evict_from_bfcache");
|
|
var pageshowCount = 0;
|
|
bc.onmessage = function(event) {
|
|
if (event.data.type == "pageshow") {
|
|
++pageshowCount;
|
|
info("pageshow " + pageshowCount);
|
|
if (pageshowCount == 1) {
|
|
bc.postMessage("nextpage");
|
|
} else if (pageshowCount == 2) {
|
|
bc.postMessage("back");
|
|
} else if (pageshowCount == 3) {
|
|
if (!event.data.persisted) {
|
|
ok(true, "BFCache isn't enabled.");
|
|
bc.postMessage("close");
|
|
} else {
|
|
bc.postMessage("forward");
|
|
}
|
|
} else if (pageshowCount == 4) {
|
|
bc.postMessage("back");
|
|
} else if (pageshowCount == 5) {
|
|
ok(!event.data.persisted,
|
|
"The page should have been evicted from BFCache");
|
|
bc.postMessage("close");
|
|
}
|
|
} else if (event.data == "closed") {
|
|
SimpleTest.finish();
|
|
}
|
|
}
|
|
|
|
function runTest() {
|
|
window.open("file_evict_from_bfcache.html", "", "noopener");
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test"></pre>
|
|
</body>
|
|
</html>
|