blob: f1c7b382e4519a91ada922fd482af77566656dc8 [file] [log] [blame] [edit]
<!DOCTYPE html><!-- webkit-test-runner [ RequestIdleCallbackEnabled=true ] -->
<html>
<body>
<script src="../resources/js-test.js"></script>
<script>
description('This tests that when requestIdleCallback is enabled, requestIdleCallback is eventaully called in the order.');
jsTestIsAsync = true;
requestIdleCallbackIsCalled = false;
const iframe = document.createElement('iframe');
const logsA = [];
const logsB = [];
iframe.onload = () => {
requestIdleCallback(() => {
requestIdleCallbackIsCalled = true;
logsA.push('1.A1');
});
iframe.contentWindow.requestIdleCallback(() => {
requestIdleCallbackIsCalled = true;
logsB.push('2.B1');
});
iframe.contentWindow.requestIdleCallback(() => {
requestIdleCallbackIsCalled = true;
logsB.push('3.B2');
});
requestIdleCallback(() => {
requestIdleCallbackIsCalled = true;
logsA.push('4.A2');
});
}
document.body.appendChild(iframe);
setTimeout(() => {
shouldBeTrue('requestIdleCallbackIsCalled');
shouldBe('logsA.length', '2');
shouldBeEqualToString('logsA.join(", ")', '1.A1, 4.A2');
shouldBe('logsB.length', '2');
shouldBeEqualToString('logsB.join(", ")', '2.B1, 3.B2');
finishJSTest();
}, 200);
</script>
</body>
</html>