Timer updates

- Switch to Mozilla's Timer.jsm for timer functions in XPCOM scope
- Add setInterval/clearInterval/requestIdleCallback/cancelIdleCallback
- Add all timer functions to plugins sandbox
This commit is contained in:
Dan Stillman 2023-05-28 04:48:31 -04:00
parent f966662911
commit 7c902d40a9
3 changed files with 18 additions and 48 deletions

View file

@ -200,17 +200,6 @@ ZoteroContext.prototype = {
"Cc":Cc,
"Ci":Ci,
/**
* Convenience method to replicate window.setTimeout()
**/
"setTimeout":function setTimeout(func, ms){
return this.Zotero.setTimeout(func, ms);
},
"clearTimeout":function setTimeout(id) {
this.Zotero.clearTimeout(id);
},
/**
* Switches in or out of connector mode
*/
@ -246,6 +235,18 @@ ZoteroContext.prototype = {
}
};
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);
XPCOMUtils.defineLazyModuleGetters(ZoteroContext.prototype, {
setTimeout: "resource://gre/modules/Timer.jsm",
clearTimeout: "resource://gre/modules/Timer.jsm",
setInterval: "resource://gre/modules/Timer.jsm",
clearInterval: "resource://gre/modules/Timer.jsm",
requestIdleCallback: "resource://gre/modules/Timer.jsm",
cancelIdleCallback: "resource://gre/modules/Timer.jsm",
});
/**
* The class from which the Zotero global XPCOM context is constructed
*