content/base/test/file_XHRSendData.sjs

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 const CC = Components.Constructor;
     2 const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
     3                              "nsIBinaryInputStream",
     4                              "setInputStream");
     6 function handleRequest(request, response)
     7 {
     8   if (request.hasHeader("Content-Type"))
     9     response.setHeader("Result-Content-Type",
    10                        request.getHeader("Content-Type"));
    12   response.setHeader("Content-Type", "text/plain; charset=ISO-8859-1");
    14   var body = new BinaryInputStream(request.bodyInputStream);
    15   var avail;
    16   var bytes = [];
    17   while ((avail = body.available()) > 0)
    18     Array.prototype.push.apply(bytes, body.readByteArray(avail));
    20   var data = String.fromCharCode.apply(null, bytes);
    21   response.setHeader("Result-Content-Length", "" + data.length);
    22   if (data.indexOf("TEST_REDIRECT_STR") >= 0) {
    23     var newURL = "http://" + data.split("&url=")[1];
    24     response.setStatusLine(null, 307, "redirect");
    25     response.setHeader("Location", newURL, false);
    26   }
    27   else {
    28     response.write(data);
    29   }
    30 }

mercurial