tor-browser

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

cacheable_non_cacheable_server.sjs (1117B)


      1 function handleRequest(request, response) {
      2   if (request.queryString == "use-cacheable") {
      3     setState("cacheable", "true");
      4 
      5     response.setStatusLine(request.httpVersion, 200, "OK");
      6     response.setHeader("Content-Type", "text/text", false);
      7     const body = "ok";
      8     response.bodyOutputStream.write(body, body.length);
      9     return;
     10   }
     11 
     12   if (request.queryString == "use-non-cacheable") {
     13     setState("cacheable", "false");
     14 
     15     response.setStatusLine(request.httpVersion, 200, "OK");
     16     response.setHeader("Content-Type", "text/text", false);
     17     const body = "ok";
     18     response.bodyOutputStream.write(body, body.length);
     19     return;
     20   }
     21 
     22   let cacheable = getState("cacheable") === "true";
     23 
     24   response.setStatusLine(request.httpVersion, 200, "OK");
     25   if (cacheable) {
     26     response.setHeader("Cache-Control", "max-age=10000", false);
     27   } else {
     28     response.setHeader("Cache-Control", "no-cache", false);
     29   }
     30   response.setHeader("Content-Type", "text/javascript", false);
     31 
     32   const body = `
     33 document.body.setAttribute("cacheable", "${cacheable}");
     34 `;
     35   response.bodyOutputStream.write(body, body.length);
     36 }