summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/test/server_file_upload.sjs
blob: a2f960af94bb7f1353c39b48e620f8fd9bfa31b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const CC = Components.Constructor;
const BinaryInputStream = CC(
  "@mozilla.org/binaryinputstream;1",
  "nsIBinaryInputStream",
  "setInputStream"
);
const BinaryOutputStream = CC(
  "@mozilla.org/binaryoutputstream;1",
  "nsIBinaryOutputStream",
  "setOutputStream"
);

function handleRequest(request, response) {
  var bodyStream = new BinaryInputStream(request.bodyInputStream);
  var bodyBytes = [];
  while ((bodyAvail = bodyStream.available()) > 0) {
    Array.prototype.push.apply(bodyBytes, bodyStream.readByteArray(bodyAvail));
  }

  var bos = new BinaryOutputStream(response.bodyOutputStream);
  bos.writeByteArray(bodyBytes, bodyBytes.length);
}