blob: e6d98279ac7a64e45c2ac85dfac196f7eee4543d [file] [log] [blame] [edit]
<!DOCTYPE html><!-- webkit-test-runner [ RequestIdleCallbackEnabled=true UsesBackForwardCache=true ] -->
<html>
<body>
<script src="../resources/js-test.js"></script>
<script>
description('This tests that when requestIdleCallback is not enabled, requestIdleCallback and IdleDeadline are not defined.');
jsTestIsAsync = true;
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
const logsA = [];
const logsB = [];
window.addEventListener("pageshow", function(event) {
if (!event.persisted)
return;
shouldBeTrue('event.persisted');
shouldBe('logsA.length', '0');
shouldBe('logsB.length', '0');
iframe.contentWindow.requestIdleCallback(() => logsB.push('B3'));
requestIdleCallback(() => logsA.push('A4'));
setTimeout(() => {
requestIdleCallback(() => {
iframe.contentWindow.requestIdleCallback(() => {
shouldBe('logsA.length', '4');
shouldBeEqualToString('logsA.join(", ")', 'A1, A2, A3, A4');
shouldBe('logsB.length', '3');
shouldBeEqualToString('logsB.join(", ")', 'B1, B2, B3');
finishJSTest();
});
});
}, 100);
});
window.addEventListener("pagehide", function(event) {
requestIdleCallback(() => logsA.push('A1'));
iframe.contentWindow.requestIdleCallback(() => logsB.push('B1'));
requestIdleCallback(() => logsA.push('A2'));
iframe.contentWindow.requestIdleCallback(() => logsB.push('B2'));
requestIdleCallback(() => logsA.push('A3'));
});
onload = () => {
setTimeout(() => {
window.location = 'resources/page-cache-helper.html';
}, 0);
}
</script>
</body>
</html>