<!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 logs = [];

iframe.onload = () => {
    requestIdleCallback(() => {
        requestIdleCallbackIsCalled = true;
        logs.push('1.A1');
    });

    iframe.contentWindow.requestIdleCallback(() => {
        requestIdleCallbackIsCalled = true;
        logs.push('2.B1');
    });

    iframe.contentWindow.requestIdleCallback(() => {
        requestIdleCallbackIsCalled = true;
        logs.push('3.B2');
    });

    requestIdleCallback(() => {
        requestIdleCallbackIsCalled = true;
        logs.push('4.A2');
    });
}
document.body.appendChild(iframe);

setTimeout(() => {
    shouldBeTrue('requestIdleCallbackIsCalled');
    shouldBe('logs.length', '4');
    shouldBeEqualToString('logs.join(", ")', '1.A1, 2.B1, 4.A2, 3.B2');
    finishJSTest();
}, 200);

</script>
</body>
</html>
