tor-browser

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

beacon-preflight-handler.sjs (1222B)


      1 function handleRequest(request, response) {
      2   response.setHeader("Cache-Control", "no-cache, must-revalidate", false);
      3 
      4   if (request.queryString === "verify") {
      5     var preflightState = getState("preflight");
      6     response.write(preflightState === "done" ? "green" : "red");
      7     return;
      8   }
      9 
     10   var originHeader = request.getHeader("origin");
     11   response.setHeader("Access-Control-Allow-Headers", "content-type", false);
     12   response.setHeader("Access-Control-Allow-Methods", "POST, GET", false);
     13   response.setHeader("Access-Control-Allow-Origin", originHeader, false);
     14   response.setHeader("Access-Control-Allow-Credentials", "true", false);
     15 
     16   if (request.queryString === "beacon") {
     17     if (request.method == "OPTIONS") {
     18       setState("preflight", "done");
     19       response.setStatusLine(null, 200, "OK");
     20       return;
     21     }
     22     response.setStatusLine(null, 200, "OK");
     23     response.write("DONE");
     24     return;
     25   }
     26 
     27   if (request.queryString === "fail") {
     28     if (request.method == "OPTIONS") {
     29       setState("preflight", "done");
     30       response.setStatusLine(null, 400, "Bad Request");
     31       return;
     32     }
     33     setState("preflight", "oops");
     34     response.setStatusLine(null, 200, "OK");
     35     response.write("DONE");
     36   }
     37 }