diff --git a/chrome/content/zotero/preferences/preferences.js b/chrome/content/zotero/preferences/preferences.js index a5f7866c9c..d47ba0809c 100644 --- a/chrome/content/zotero/preferences/preferences.js +++ b/chrome/content/zotero/preferences/preferences.js @@ -375,6 +375,10 @@ function verifyStorageServer() { var onDone = false; Zotero.Sync.Storage.WebDAV.checkServer() + // Get the XMLHttpRequest for possible cancelling + .progress(function (obj) { + request = obj.xmlhttp; + }) .finally(function () { verifyButton.hidden = false; abortButton.hidden = true; @@ -426,9 +430,6 @@ function verifyStorageServer() { } } }) - .progress(function (obj) { - request = obj.request; - }) .catch(function (e) { Zotero.debug("WebDAV verification failed"); Zotero.debug(e, 1); diff --git a/chrome/content/zotero/xpcom/storage/webdav.js b/chrome/content/zotero/xpcom/storage/webdav.js index 4e56f330a6..f9571c5b21 100644 --- a/chrome/content/zotero/xpcom/storage/webdav.js +++ b/chrome/content/zotero/xpcom/storage/webdav.js @@ -1290,11 +1290,12 @@ Zotero.Sync.Storage.WebDAV = (function () { return deferred.resolve([uri, Zotero.Sync.Storage.ERROR_OFFLINE]); } - // Pass request to progress handler - var obj = {}; - obj.request = request; - deferred.notify(obj) - + // Pass XMLHttpRequest to progress handler + setTimeout(function () { + var obj = {}; + obj.xmlhttp = request; + deferred.notify(obj) + }, 0); return deferred.promise; };