blob: 346eb836f82fd412e8fcc96474e35cc1fbe416e5 [file] [log] [blame]
<!-- 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>