gecko-dev/xpcom/tests/unit/test_bug1434856.js

27 строки
773 B
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/ */
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
function run_test() {
let complete = false;
let runnable = {
internalQI: ChromeUtils.generateQI([Ci.nsIRunnable]),
// eslint-disable-next-line mozilla/use-chromeutils-generateqi
QueryInterface(iid) {
// Attempt to schedule another runnable. This simulates a GC/CC
// being scheduled while executing the JS QI.
Services.tm.dispatchToMainThread(() => false);
return this.internalQI(iid);
},
run() {
complete = true;
},
};
Services.tm.dispatchToMainThread(runnable);
Services.tm.spinEventLoopUntil(() => complete);
}