summaryrefslogtreecommitdiffstats
path: root/dom/ipc/tests/blob_verify.sjs
blob: 62b82359e5935210a23ba2f186e09f03a893f53e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);

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