servo/tests/wpt/web-platform-tests/requestidlecallback/idlharness.html

53 lines
1.5 KiB
HTML

<!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'>
[Global=Window, Exposed=Window]
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>