Bug 1696266, test reloading a page which might otherwise enter bfcache, r=peterv

Depends on D107300

Differential Revision: https://phabricator.services.mozilla.com/D107536
This commit is contained in:
Olli Pettay 2021-03-09 13:42:43 +00:00
Родитель a46567f045
Коммит b90bd58381
3 изменённых файлов: 67 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,23 @@
<html>
<head>
<script>
window.onpageshow = function() {
let bc = new BroadcastChannel("test_reload");
bc.onmessage = function(event) {
if (event.data == "reload") {
bc.close();
location.reload(true);
} else if (event.data == "close") {
bc.postMessage("closed");
bc.close();
window.close();
}
}
bc.postMessage("pageshow");
}
</script>
</head>
<body>
</body>
</html>

Просмотреть файл

@ -91,6 +91,8 @@ support-files = file_docshell_gotoindex.html
[test_not-opener.html]
[test_opener.html]
[test_popup-navigates-children.html]
[test_reload.html]
support-files = file_reload.html
[test_reserved.html]
skip-if =
(debug && e10s) # bug 1263213

Просмотреть файл

@ -0,0 +1,42 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Ensure a page which is otherwise bfcacheable doesn't crash on reload</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<script>
SimpleTest.waitForExplicitFinish();
let pageshowCount = 0;
let bc = new BroadcastChannel("test_reload");
bc.onmessage = function(event) {
info("MessageEvent: " + event.data);
if (event.data == "pageshow") {
++pageshowCount;
info("pageshow: " + pageshowCount);
if (pageshowCount < 3) {
info("Sending reload");
bc.postMessage("reload");
} else {
info("Sending close");
bc.postMessage("close");
}
} else if (event.data == "closed") {
info("closed");
bc.close();
ok(true, "Passed");
SimpleTest.finish();
}
}
function test() {
window.open("file_reload.html", "", "noopener");
}
</script>
</head>
<body onload="test()">
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</html>