| <!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> |