tor-browser

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

file_resource_cache_server.sjs (1764B)


      1 function handleRequest(request, response) {
      2   if (request.queryString == "reset") {
      3     // Reset the internal state.
      4     setState("redirected", "");
      5 
      6     response.setStatusLine(request.httpVersion, 200, "OK");
      7     response.setHeader("Content-Type", "text/plain", false);
      8     const body = "reset";
      9     response.bodyOutputStream.write(body, body.length);
     10   } else if (
     11     request.queryString == "redirect-cache" ||
     12     request.queryString == "redirect-nocache"
     13   ) {
     14     // Redirect to different CSS between the first and the second requests.
     15 
     16     response.setStatusLine(request.httpVersion, 301, "Moved Permanently");
     17     if (getState("redirected")) {
     18       response.setHeader(
     19         "Location",
     20         "file_resource_cache_server.sjs?blue",
     21         false
     22       );
     23     } else {
     24       response.setHeader(
     25         "Location",
     26         "file_resource_cache_server.sjs?red",
     27         false
     28       );
     29     }
     30 
     31     if (request.queryString == "redirect-nocache") {
     32       response.setHeader("Cache-Control", "no-cache", false);
     33     } else {
     34       response.setHeader("Cache-Control", "max-age=10000", false);
     35     }
     36 
     37     setState("redirected", "1");
     38   } else if (request.queryString == "blue") {
     39     response.setStatusLine(request.httpVersion, 200, "OK");
     40     response.setHeader("Cache-Control", "max-age=10000", false);
     41     response.setHeader("Content-Type", "text/css", false);
     42     const body = `body { color: blue; }`;
     43     response.bodyOutputStream.write(body, body.length);
     44   } else {
     45     response.setStatusLine(request.httpVersion, 200, "OK");
     46     response.setHeader("Cache-Control", "max-age=10000", false);
     47     response.setHeader("Content-Type", "text/css", false);
     48     const body = `body { color: red; }`;
     49     response.bodyOutputStream.write(body, body.length);
     50   }
     51 }