Source code

Revision control

Copy as Markdown

Other Tools

"use strict";
let timer;
// Send a part of the file then wait for 3 second before sending the rest.
// If download isn't exempt from background timer of https-only/-first then the download
// gets cancelled before it completed.
const DELAY_MS = 3500;
function handleRequest(request, response) {
response.processAsync();
timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
response.setHeader("Cache-Control", "no-cache", false);
response.setHeader(
"Content-Disposition",
"attachment; filename=large-dummy-file.txt"
);
response.setHeader("Content-Type", "text/plain");
response.write("Begin the file");
timer.init(
() => {
response.write("End of file");
response.finish();
},
DELAY_MS,
Ci.nsITimer.TYPE_ONE_SHOT
);
}