servo/tests/wpt/web-platform-tests/requestidlecallback/idlharness.window.js

30 lines
952 B
JavaScript

// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
async_test(function() {
const srcs = ['requestidlecallback', 'html', 'dom'];
Promise.all(srcs.map(i => fetch(`/interfaces/${i}.idl`).then(r => r.text())))
.then(([idl, html, dom]) => {
var idl_array = new IdlArray();
idl_array.add_idls(idl);
idl_array.add_dependency_idls(html);
idl_array.add_dependency_idls(dom);
idl_array.add_objects({Window: ['window']});
let deadline;
const execIDLTest = this.step_func_done(function() {
idl_array.add_objects({IdleDeadline: [deadline]});
idl_array.test();
});
if (!window.requestIdleCallback) {
execIDLTest();
} else {
const callback = this.step_func(d => {
deadline = d;
execIDLTest();
});
requestIdleCallback(callback, { timeout: 100 });
}
});
}, 'IdleDeadline object setup');