Source code
Revision control
Copy as Markdown
Other Tools
"use strict";
/* globals reportTestResult */ // Defined by test_DeferredTask_window.js
/* globals window */ // We are running in a document.
const { DeferredTask } = ChromeUtils.importESModule(
"resource://gre/modules/DeferredTask.sys.mjs"
);
const task1 = new DeferredTask(
() => {
reportTestResult("all_timeouts_zero");
},
0, // No timeout.
0 // No idle timeout.
);
const task2 = new DeferredTask(
() => {
reportTestResult("idle_timeout_only");
},
0, // No timeout.
1 // idle timeout with short deadline
);
const task3 = new DeferredTask(
() => {
reportTestResult("timer_only");
},
1, // Short timer.
0 // No idle timeout.
);
const task4 = new DeferredTask(
() => {
reportTestResult("all_timeouts_one");
},
1, // Short timer.
1 // Short idle timeout.
);
// Sanity check: verify that DeferredTask can run at least once.
new DeferredTask(
() => {
// Now arm the other timers...
task1.arm();
task2.arm();
task3.arm();
task4.arm();
reportTestResult("removing_iframe");
// Remove the iframe embedding this script.
window.frameElement.remove();
},
0,
0
).arm();