| <!doctype html> |
| <meta charset=utf-8> |
| <title>idlharness test</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src="/resources/WebIDLParser.js"></script> |
| <script src="/resources/idlharness.js"></script> |
| |
| <pre id='untested_idl' style='display:none'> |
| [PrimaryGlobal] |
| interface Window { |
| }; |
| </pre> |
| |
| <pre id='idl'> |
| partial interface Window { |
| unsigned long requestIdleCallback(IdleRequestCallback callback, |
| optional IdleRequestOptions options); |
| void cancelIdleCallback(unsigned long handle); |
| }; |
| |
| dictionary IdleRequestOptions { |
| unsigned long timeout; |
| }; |
| |
| [Exposed=Window] interface IdleDeadline { |
| DOMHighResTimeStamp timeRemaining(); |
| readonly attribute boolean didTimeout; |
| }; |
| |
| callback IdleRequestCallback = void (IdleDeadline deadline); |
| </pre> |
| <script> |
| var idl_array = new IdlArray(); |
| idl_array.add_untested_idls(document.getElementById("untested_idl").textContent); |
| idl_array.add_idls(document.getElementById("idl").textContent); |
| idl_array.add_objects({Window: ["window"]}); |
| |
| async_test(function() { |
| var rIC = this.step_func(function(deadline) { |
| idl_array.add_objects({IdleDeadline: [deadline]}); |
| idl_array.test(); |
| this.done(); |
| }); |
| if (window.requestIdleCallback) { |
| requestIdleCallback(rIC); |
| } else { |
| idl_array.test(); |
| assert_unreached("IdleDeadline not supported"); |
| this.done(); |
| } |
| }, "IdleDeadline object setup"); |
| </script> |