content/base/test/file_XHRSendData.sjs

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     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