Remove processNextEvent() call

This commit is contained in:
Simon Kornblith 2011-09-20 21:47:04 +00:00
parent 02506966eb
commit d19c87ef83

View File

@ -99,7 +99,7 @@ Zotero.Server.Connector.Detect.prototype = {
* @param {Function} sendResponseCallback function to send HTTP response * @param {Function} sendResponseCallback function to send HTTP response
*/ */
"init":function(data, sendResponseCallback) { "init":function(data, sendResponseCallback) {
this._sendResponse = sendResponseCallback; this.sendResponse = sendResponseCallback;
this._parsedPostData = data; this._parsedPostData = data;
this._translate = new Zotero.Translate("web"); this._translate = new Zotero.Translate("web");
@ -154,7 +154,7 @@ Zotero.Server.Connector.Detect.prototype = {
"label":translator.label, "priority":translator.priority} "label":translator.label, "priority":translator.priority}
jsons.push(json); jsons.push(json);
} }
this._sendResponse(200, "application/json", JSON.stringify(jsons)); this.sendResponse(200, "application/json", JSON.stringify(jsons));
this._translate.cookieSandbox.destroy(); this._translate.cookieSandbox.destroy();
Zotero.Browser.deleteHiddenBrowser(this._browser); Zotero.Browser.deleteHiddenBrowser(this._browser);
@ -189,7 +189,7 @@ Zotero.Server.Connector.SavePage.prototype = {
* @param {Function} sendResponseCallback function to send HTTP response * @param {Function} sendResponseCallback function to send HTTP response
*/ */
"init":function(data, sendResponseCallback) { "init":function(data, sendResponseCallback) {
this._sendResponse = sendResponseCallback; this.sendResponse = sendResponseCallback;
Zotero.Server.Connector.Detect.prototype.init.apply(this, [data, sendResponseCallback]) Zotero.Server.Connector.Detect.prototype.init.apply(this, [data, sendResponseCallback])
}, },
@ -212,25 +212,8 @@ Zotero.Server.Connector.SavePage.prototype = {
} }
// Send "Multiple Choices" HTTP response // Send "Multiple Choices" HTTP response
this._sendResponse(300, "application/json", JSON.stringify({"selectItems":itemList, "instanceID":instanceID, "uri":this._parsedPostData.uri})); this.sendResponse(300, "application/json", JSON.stringify({"selectItems":itemList, "instanceID":instanceID, "uri":this._parsedPostData.uri}));
this.selectedItemsCallback = callback;
// We need this to make sure that we won't stop Firefox from quitting, even if the user
// didn't close the selectItems window
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
var me = this;
var quitObserver = {observe:function() { me.selectedItems = false; }};
observerService.addObserver(quitObserver, "quit-application", false);
this.selectedItems = null;
var endTime = Date.now() + 60*60*1000; // after an hour, timeout, so that we don't
// permanently slow Firefox with this loop
while(this.selectedItems === null && Date.now() < endTime) {
Zotero.mainThread.processNextEvent(true);
}
observerService.removeObserver(quitObserver, "quit-application");
callback(this.selectedItems);
}, },
/** /**
@ -244,7 +227,7 @@ Zotero.Server.Connector.SavePage.prototype = {
if(!translators.length) { if(!translators.length) {
me._translate.cookieSandbox.destroy(); me._translate.cookieSandbox.destroy();
Zotero.Browser.deleteHiddenBrowser(this._browser); Zotero.Browser.deleteHiddenBrowser(this._browser);
this._sendResponse(500); this.sendResponse(500);
return; return;
} }
@ -271,9 +254,9 @@ Zotero.Server.Connector.SavePage.prototype = {
me._translate.cookieSandbox.destroy(); me._translate.cookieSandbox.destroy();
Zotero.Browser.deleteHiddenBrowser(me._browser); Zotero.Browser.deleteHiddenBrowser(me._browser);
if(jsonItems.length || me.selectedItems === false) { if(jsonItems.length || me.selectedItems === false) {
me._sendResponse(201, "application/json", JSON.stringify({"items":jsonItems})); me.sendResponse(201, "application/json", JSON.stringify({"items":jsonItems}));
} else { } else {
me._sendResponse(500); me.sendResponse(500);
} }
}); });
@ -442,13 +425,14 @@ Zotero.Server.Connector.SelectItems.prototype = {
*/ */
"init":function(data, sendResponseCallback) { "init":function(data, sendResponseCallback) {
var saveInstance = Zotero.Server.Connector._waitingForSelection[data.instanceID]; var saveInstance = Zotero.Server.Connector._waitingForSelection[data.instanceID];
saveInstance._sendResponse = sendResponseCallback; saveInstance.sendResponse = sendResponseCallback;
saveInstance.selectedItems = false; var selectedItems = false;
for(var i in data.selectedItems) { for(var i in data.selectedItems) {
saveInstance.selectedItems = data.selectedItems; selectedItems = data.selectedItems;
break; break;
} }
saveInstance.selectedItemsCallback(selectedItems);
} }
} }