<!doctype html>
<meta charset=utf-8>
<title>requestIdleCallback timeout callback must be called with didTimeout equal to true</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id="log"></div>
<script>
  async_test(function (t) {
    assert_false(document.hidden, "document.hidden must exist and be false to run this test properly");
    var counter = 0;

    function g(deadline) {
      assert_true(deadline.didTimeout)
      t.done();
    }

    function f(deadline) {
      assert_false(deadline.didTimeout);
      window.requestIdleCallback(t.step_func(g), {timeout:300});

      var d = Date.now() + 500;
      while (Date.now() < d) {

      }
    }
    window.requestIdleCallback(t.step_func(f));
  }, "requestIdleCallback callback should time out");

  async_test(function (t) {
    assert_false(document.hidden, "document.hidden must exist and be false to run this test properly");
    function g(deadline) {
      assert_false(deadline.didTimeout)
      t.done();
    }

    function f(deadline) {
      assert_false(deadline.didTimeout);
      window.requestIdleCallback(t.step_func(g), {timeout:100000});
    }
    window.requestIdleCallback(t.step_func(f));
  }, "requestIdleCallback callback should not time out");

</script>
