Reduce indentation in waitForWindow() support function
This commit is contained in:
parent
18bb18ba51
commit
9c91018964
1 changed files with 27 additions and 26 deletions
|
@ -85,35 +85,36 @@ function waitForWindow(uri, callback) {
|
|||
var loadobserver = function(ev) {
|
||||
ev.originalTarget.removeEventListener("load", loadobserver, false);
|
||||
Zotero.debug("Window opened: " + ev.target.location.href);
|
||||
if(ev.target.location.href == uri) {
|
||||
Services.ww.unregisterNotification(winobserver);
|
||||
var win = ev.target.docShell
|
||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindow);
|
||||
// Give window code time to run on load
|
||||
win.setTimeout(function () {
|
||||
if (callback) {
|
||||
try {
|
||||
// If callback is a promise, wait for it
|
||||
let maybePromise = callback(win);
|
||||
if (maybePromise && maybePromise.then) {
|
||||
maybePromise.then(() => deferred.resolve(win)).catch(e => deferred.reject(e));
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
win.close();
|
||||
deferred.reject(e);
|
||||
|
||||
if (ev.target.location.href != uri) {
|
||||
Zotero.debug(`Ignoring window ${uri} in waitForWindow()`);
|
||||
return;
|
||||
}
|
||||
|
||||
Services.ww.unregisterNotification(winobserver);
|
||||
var win = ev.target.docShell
|
||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindow);
|
||||
// Give window code time to run on load
|
||||
win.setTimeout(function () {
|
||||
if (callback) {
|
||||
try {
|
||||
// If callback returns a promise, wait for it
|
||||
let maybePromise = callback(win);
|
||||
if (maybePromise && maybePromise.then) {
|
||||
maybePromise.then(() => deferred.resolve(win)).catch(e => deferred.reject(e));
|
||||
return;
|
||||
}
|
||||
}
|
||||
deferred.resolve(win);
|
||||
});
|
||||
}
|
||||
else {
|
||||
Zotero.debug(`Ignoring window ${uri} in waitForWindow()`);
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
win.close();
|
||||
deferred.reject(e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
deferred.resolve(win);
|
||||
});
|
||||
};
|
||||
var winobserver = {"observe":function(subject, topic, data) {
|
||||
if(topic != "domwindowopened") return;
|
||||
|
|
Loading…
Add table
Reference in a new issue