<!doctype html>
<meta charset=utf-8>
<title>requestIdleCallback timeout callback must be called with didTimeout equal to true</title>
<meta name="timeout" content="long">
<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>
