User:Lupin/sandbox/popups.diff
--- popups.orig.js 2005-12-06 17:53:40.000000000 -0800 +++ popups.js 2005-12-06 18:01:03.000000000 -0800 @@ -1191,6 +1191,8 @@
// //
+var gDownloadsInProgress = { }; +
function downloader(url) { // Source: http://jibbering.com/2002/4/httprequest.html this.http = false;
@@ -1225,9 +1227,14 @@
downloader.prototype.runCallback = function () {this.callbackFunction(this);}; downloader.prototype.getData = function () {if(!this.http) return null; return this.http.responseText;}; downloader.prototype.setTarget = function () {if(!this.http) return null; this.http.open("GET", this.url, true);};
-downloader.prototype.start=function () {if(!this.http) return null; return this.http.send(null);};
downloader.prototype.getReadyState=function () {if(!this.http) return null; return this.http.readyState;};
+downloader.prototype.start=function () { + if(!this.http) return null; + gDownloadsInProgress[this.id] = this; + return this.http.send(null); +}; +
downloader.prototype.getLastModifiedDate=function () { if(!this.http) return null; var lastmod=null;
@@ -1252,6 +1259,7 @@
d.setTarget(); var f = function () { if (d.getReadyState() == 4) {
+ delete gDownloadsInProgress[this.id];
d.data=d.getData(); d.lastModified=d.getLastModifiedDate(); callback(d);
@@ -1274,6 +1282,15 @@
return d.start(); };
+function abortAllDownloads() { + for ( var x in gDownloadsInProgress ) { + try { + gDownloadsInProgress[x].abort(); + delete gDownloadsInProgress[x]; + } catch (e) { } + } +}; +
// // // downloader
@@ -1329,18 +1346,6 @@
return gCachedPages.push(page); };
-/* - var gCurrentDownload = null; - - function abortCurrentDownload(download) { - if (gCurrentDownload) { - try { gCurrentDownload.abort(); } - catch (anerror) {return 'could not abort download object';} - } - return true; - } -*/ -
///////////////////// // LINK GENERATION //
@@ -2946,7 +2951,7 @@
if (getValueOf('popupShortcutKeys')) rmPopupShortcuts(); cClick(); window.currentLink=null;
- // abortCurrentDownload(); + abortAllDownloads();
stopImagesDownloading(); if (checkPopupPositionTimer != null) { clearInterval(checkPopupPositionTimer); checkPopupPositionTimer=null; } if (checkImagesTimer != null) { clearInterval(checkImagesTimer); checkImagesTimer=null; }