tor-browser

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

incremental-js-value-script.sjs (1001B)


      1 "use strict";
      2 
      3 function handleRequest(request, response) {
      4   const { queryString } = request;
      5   if (queryString === "setup") {
      6     setState("cache-counter", "1");
      7     setState("etag", `"${Date.now()}-${Math.round(Math.random() * 100)}"`);
      8     response.setHeader("Content-Type", "text/html");
      9     response.write("OK");
     10     return;
     11   }
     12 
     13   const Etag = getState("etag");
     14   const IfNoneMatch = request.hasHeader("If-None-Match")
     15     ? request.getHeader("If-None-Match")
     16     : "";
     17 
     18   const counter = getState("cache-counter") || 1;
     19   const page = "<script>var jsValue = '" + counter + "';</script>" + counter;
     20 
     21   setState("cache-counter", "" + (parseInt(counter, 10) + 1));
     22 
     23   response.setHeader("Etag", Etag, false);
     24 
     25   if (IfNoneMatch === Etag) {
     26     response.setStatusLine(request.httpVersion, "304", "Not Modified");
     27   } else {
     28     response.setHeader("Content-Type", "text/html; charset=utf-8", false);
     29     response.setHeader("Content-Length", page.length + "", false);
     30     response.write(page);
     31   }
     32 }