summaryrefslogtreecommitdiffstats
path: root/dom/security/test/https-first/file_slow_download.sjs
blob: 6e4f109068f51926c61acd9031d1bca1157d91fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"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
  );
}