53 lines
1.3 KiB
HTML
53 lines
1.3 KiB
HTML
<!-- webkit-test-runner [ UsesBackForwardCache=true ] -->
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script>
|
|
description("Tests that pageshow / pagehide events are reliably fired when navigating back and forth several times.");
|
|
jsTestIsAsync = true;
|
|
|
|
let pageshowCount = 0;
|
|
let pagehideCount = 0;
|
|
|
|
addEventListener("pageshow", (_event) => {
|
|
event = _event;
|
|
debug("* pageshow - persisted: " + event.persisted);
|
|
pageshowCount++;
|
|
shouldBe("pagehideCount", "" + (pageshowCount - 1));
|
|
if (pageshowCount == 1) {
|
|
shouldBeFalse("event.persisted");
|
|
return;
|
|
}
|
|
|
|
shouldBeTrue("event.persisted");
|
|
if (pageshowCount == 2 || pageshowCount == 3) {
|
|
setTimeout(() => {
|
|
debug("* Navigating forward");
|
|
history.forward();
|
|
}, 0);
|
|
return;
|
|
}
|
|
if (pageshowCount == 4) {
|
|
finishJSTest();
|
|
return;
|
|
}
|
|
});
|
|
|
|
addEventListener("pagehide", (event) => {
|
|
debug("* pagehide - persisted: " + event.persisted);
|
|
pagehideCount++;
|
|
});
|
|
|
|
onload = () => {
|
|
setTimeout(() => {
|
|
window.location.href = "resources/page-cache-helper.html";
|
|
}, 0);
|
|
}
|
|
</script>
|
|
<iframe src="resources/dummy.html"></iframe>
|
|
<iframe src="resources/dummy.html"></iframe>
|
|
<iframe src="resources/dummy.html"></iframe>
|
|
</body>
|
|
</html>
|