diff --git a/common/modules/buffer.jsm b/common/modules/buffer.jsm index 57e28615..58c9fa32 100644 --- a/common/modules/buffer.jsm +++ b/common/modules/buffer.jsm @@ -15,7 +15,7 @@ lazyRequire("bookmarkcache", ["bookmarkcache"]); lazyRequire("io", ["io"]); lazyRequire("finder", ["RangeFind"]); lazyRequire("overlay", ["overlay"]); -lazyRequire("storage", ["storage"]); +lazyRequire("storage", ["File", "storage"]); lazyRequire("template", ["template"]); /** @@ -642,14 +642,17 @@ var Buffer = Module("Buffer", { services.Transfer(uri, File(file).URI, "", null, null, null, persist)); - persist.progressListener = update(Object.create(downloadListener), { - onStateChange: util.wrapCallback(function onStateChange(progress, request, flags, status) { - if (callback && (flags & Ci.nsIWebProgressListener.STATE_STOP) && status == 0) - util.trapErrors(callback, self, uri, file, progress, request, flags, status); + if (callback) + persist.progressListener = update(Object.create(downloadListener), { + onStateChange: util.wrapCallback(function onStateChange(progress, request, flags, status) { + if (callback && (flags & Ci.nsIWebProgressListener.STATE_STOP) && status == 0) + util.trapErrors(callback, self, uri, file, progress, request, flags, status); - return onStateChange.superapply(this, arguments); - }) - }); + return onStateChange.superapply(this, arguments); + }) + }); + else + persist.progressListener = downloadListener; persist.saveURI(uri, null, null, null, null, file); },