fx-compat: AddonManager.getAllAddons() now returns a promise

This commit is contained in:
Dan Stillman 2020-08-03 12:20:58 -04:00
parent 66a60eea64
commit d635fdda41
2 changed files with 113 additions and 121 deletions

View file

@ -373,7 +373,6 @@ Zotero.Prefs = new function(){
async function loadExtensionDefaults() { async function loadExtensionDefaults() {
var defaultBranch = Services.prefs.getDefaultBranch(""); var defaultBranch = Services.prefs.getDefaultBranch("");
return new Zotero.Promise(function (resolve) {
Cu.import("resource://gre/modules/AddonManager.jsm"); Cu.import("resource://gre/modules/AddonManager.jsm");
// Lines are in format `pref("[key]", [val]);`, so define a function to be called that // Lines are in format `pref("[key]", [val]);`, so define a function to be called that
@ -406,7 +405,7 @@ Zotero.Prefs = new function(){
} }
} }
AddonManager.getAllAddons(async function(addons) { let addons = await AddonManager.getAllAddons();
var reusableStreamInstance = Cc['@mozilla.org/scriptableinputstream;1'] var reusableStreamInstance = Cc['@mozilla.org/scriptableinputstream;1']
.createInstance(Ci.nsIScriptableInputStream); .createInstance(Ci.nsIScriptableInputStream);
@ -481,10 +480,6 @@ Zotero.Prefs = new function(){
Zotero.logError(e); Zotero.logError(e);
} }
} }
resolve();
});
});
} }
this.getVirtualCollectionState = function (type) { this.getVirtualCollectionState = function (type) {

View file

@ -1309,9 +1309,10 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
/** /**
* @return {Promise<String[]>} - Promise for an array of extension names and versions * @return {Promise<String[]>} - Promise for an array of extension names and versions
*/ */
this.getInstalledExtensions = Zotero.Promise.method(function () { this.getInstalledExtensions = async function () {
var deferred = Zotero.Promise.defer(); var { AddonManager } = ChromeUtils.import("resource://gre/modules/AddonManager.jsm");
function onHaveInstalledAddons(installed) { var installed = await AddonManager.getAllAddons();
installed.sort(function(a, b) { installed.sort(function(a, b) {
return ((a.appDisabled || a.userDisabled) ? 1 : 0) - return ((a.appDisabled || a.userDisabled) ? 1 : 0) -
((b.appDisabled || b.userDisabled) ? 1 : 0); ((b.appDisabled || b.userDisabled) ? 1 : 0);
@ -1329,13 +1330,9 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
+ ((addon.appDisabled || addon.userDisabled) ? ", disabled" : "") + ((addon.appDisabled || addon.userDisabled) ? ", disabled" : "")
+ ")"); + ")");
} }
deferred.resolve(addons);
}
Components.utils.import("resource://gre/modules/AddonManager.jsm"); return addons;
AddonManager.getAllAddons(onHaveInstalledAddons); };
return deferred.promise;
});
this.getString = function (name, params, num) { this.getString = function (name, params, num) {
return Zotero.Intl.getString(...arguments); return Zotero.Intl.getString(...arguments);