| <!doctype html><!-- webkit-test-runner [ experimental:RequestIdleCallbackEnabled=true ] --> |
| <meta charset=utf-8> |
| <title>multiple calls to requestIdleCallback</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <div id="log"></div> |
| <script> |
| let option = {timeout: 50}; |
| |
| async_test(function (t) { |
| assert_false(document.hidden, "document.hidden must exist and be false to run this test properly"); |
| var counter = 0; |
| function f(c) { |
| assert_equals(counter, c); |
| if (counter === 49) { |
| t.done(); |
| } |
| |
| ++counter; |
| } |
| for (var i = 0; i < 100; ++i) { |
| let j = i; |
| window.requestIdleCallback(t.step_func(function () { f(j) }), option); |
| } |
| }, "requestIdleCallback callbacks should be invoked in order (called iteratively)"); |
| |
| async_test(function (t) { |
| assert_false(document.hidden, "document.hidden must exist and be false to run this test properly"); |
| var counter = 0; |
| |
| function f(c) { |
| assert_equals(counter, c); |
| if (counter === 49) { |
| t.done(); |
| } |
| |
| ++counter; |
| window.requestIdleCallback(t.step_func(function () { f(c + 1) }), option); |
| } |
| |
| window.requestIdleCallback(t.step_func(function () { f(0) }), option); |
| }, "requestIdleCallback callbacks should be invoked in order (called recursively)"); |
| |
| let generateIdlePeriods = _ => requestAnimationFrame(generateIdlePeriods); |
| generateIdlePeriods(); |
| </script> |