summaryrefslogtreecommitdiffstats
path: root/dom/ipc/tests/blob_verify.sjs
blob: c979192bf059ee0ca5efb11104e26a4c6bd112de (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
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 = [];
  let bodyAvail;
  while ((bodyAvail = bodyStream.available()) > 0) {
    Array.prototype.push.apply(bodyBytes, bodyStream.readByteArray(bodyAvail));
  }

  var bos = new BinaryOutputStream(response.bodyOutputStream);

  response.processAsync();
  bos.writeByteArray(bodyBytes);
  response.finish();
}