tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

form_submit.sjs (1029B)


      1 "use strict";
      2 
      3 const CC = Components.Constructor;
      4 const BinaryInputStream = CC(
      5   "@mozilla.org/binaryinputstream;1",
      6   "nsIBinaryInputStream",
      7   "setInputStream"
      8 );
      9 
     10 const BinaryOutputStream = CC(
     11   "@mozilla.org/binaryoutputstream;1",
     12   "nsIBinaryOutputStream",
     13   "setOutputStream"
     14 );
     15 
     16 function log() {
     17   // dump(`LOG: ${str}\n`);
     18 }
     19 
     20 async function handleRequest(request, response) {
     21   if (request.method !== "POST") {
     22     throw new Error("Expected a post request");
     23   } else {
     24     log("Reading request");
     25     let available = 0;
     26     let inputStream = new BinaryInputStream(request.bodyInputStream);
     27     while ((available = inputStream.available()) > 0) {
     28       log(inputStream.readBytes(available));
     29     }
     30   }
     31 
     32   log("Setting Headers");
     33   response.setHeader("Content-Type", "text/html", false);
     34   response.setStatusLine(request.httpVersion, "200", "OK");
     35   log("Writing body");
     36   response.write(
     37     '<script>"use strict"; let target = opener ? opener : parent; target.postMessage("done", "*");</script>'
     38   );
     39   log("Done");
     40 }