Use coroutine() on Zotero.init()

This commit is contained in:
Dan Stillman 2016-11-01 03:22:28 -04:00
parent b22850efed
commit 0f19e5c89b

View File

@ -34,7 +34,6 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
*/
(function(){
// Privileged (public) methods
this.init = init;
this.getProfileDirectory = getProfileDirectory;
this.getStorageDirectory = getStorageDirectory;
this.getZoteroDatabase = getZoteroDatabase;
@ -142,9 +141,9 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
/**
* Initialize the extension
*
* @return {Boolean|Promise:Boolean}
* @return {Promise<Boolean>}
*/
function init(options) {
this.init = Zotero.Promise.coroutine(function* (options) {
if (this.initialized || this.skipLoading) {
return false;
}
@ -192,11 +191,12 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
this.platformMajorVersion = parseInt(appInfo.platformVersion.match(/^[0-9]+/)[0]);
this.isFx = true;
this.isStandalone = Services.appinfo.ID == ZOTERO_CONFIG['GUID'];
return Zotero.Promise.try(function () {
if (Zotero.isStandalone) {
return Services.appinfo.version;
} else {
var deferred = Zotero.Promise.defer();
var version = Services.appinfo.version;
}
else {
let deferred = Zotero.Promise.defer();
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID(
ZOTERO_CONFIG.GUID,
@ -204,10 +204,8 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
deferred.resolve(addon.version);
}
);
return deferred.promise;
var version = yield deferred.promise;
}
})
.then(function (version) {
Zotero.version = version;
// OS platform
@ -312,6 +310,7 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
return false;
}
}
if(Zotero.isStandalone) {
Zotero.checkForUnsafeDataDirectory(dataDir.path);
}
@ -384,8 +383,7 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
}
return true;
}.bind(this));
}
});
/**
* Triggers events when initialization finishes