tor-browser

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

early_hint_error.sjs (1034B)


      1 "use strict";
      2 
      3 function handleRequest(request, response) {
      4   response.setStatusLine(
      5     request.httpVersion,
      6     parseInt(request.queryString),
      7     "Dynamic error"
      8   );
      9   response.setHeader("Content-Type", "image/png", false);
     10   response.setHeader("Cache-Control", "max-age=604800", false);
     11 
     12   // count requests
     13   let image;
     14   let count = JSON.parse(getSharedState("earlyHintCount"));
     15   if (
     16     request.hasHeader("X-Moz") &&
     17     request.getHeader("X-Moz") === "early hint"
     18   ) {
     19     count.hinted += 1;
     20     // set to green/black horizontal stripes (71 bytes)
     21     image = atob(
     22       "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAADklEQVQIW2OU+i/FAAcADoABNV8X" +
     23         "GBMAAAAASUVORK5CYII="
     24     );
     25   } else {
     26     count.normal += 1;
     27     // set to purple/white checkered pattern (76 bytes)
     28     image = atob(
     29       "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAE0lEQVQIW2P4//+/N8MkBiAGsgA1" +
     30         "bAe1SzDY8gAAAABJRU5ErkJggg=="
     31     );
     32   }
     33   setSharedState("earlyHintCount", JSON.stringify(count));
     34   response.write(image);
     35 }