tor-browser

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

test_accept_header.sjs (1971B)


      1 function handleRequest(request, response) {
      2   response.setStatusLine(request.httpVersion, "200", "OK");
      3   dump(`test_accept_header ${request.path}?${request.queryString}\n`);
      4 
      5   if (request.queryString == "worker") {
      6     setState(
      7       "data",
      8       JSON.stringify({ type: "worker", accept: request.getHeader("Accept") })
      9     );
     10     response.setHeader("Content-Type", "text/javascript", false);
     11     response.write("postMessage(42)");
     12     return;
     13   }
     14 
     15   if (request.queryString == "image") {
     16     // A 1x1 PNG image.
     17     // Source: https://commons.wikimedia.org/wiki/File:1x1.png (Public Domain)
     18     const IMAGE = atob(
     19       "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAA" +
     20         "ACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII="
     21     );
     22 
     23     response.setHeader("Content-Type", "image/png", false);
     24     response.write(IMAGE);
     25 
     26     setState(
     27       "data",
     28       JSON.stringify({ type: "image", accept: request.getHeader("Accept") })
     29     );
     30     return;
     31   }
     32 
     33   if (request.queryString == "style") {
     34     response.setHeader("Content-Type", "text/css", false);
     35     response.write("");
     36 
     37     setState(
     38       "data",
     39       JSON.stringify({ type: "style", accept: request.getHeader("Accept") })
     40     );
     41     return;
     42   }
     43 
     44   if (request.queryString == "iframe") {
     45     response.setHeader("Content-Type", "text/html", false);
     46     response.write("<h1>Hello world!</h1>");
     47 
     48     setState(
     49       "data",
     50       JSON.stringify({ type: "iframe", accept: request.getHeader("Accept") })
     51     );
     52     return;
     53   }
     54 
     55   if (request.queryString == "json") {
     56     response.setHeader("Content-Type", "application/json", false);
     57     response.write('{"foo": true}');
     58     setState(
     59       "data",
     60       JSON.stringify({ type: "json", accept: request.getHeader("Accept") })
     61     );
     62     return;
     63   }
     64 
     65   if (request.queryString == "get") {
     66     response.setHeader("Content-Type", "application/json", false);
     67     response.write(getState("data"));
     68 
     69     setState("data", "");
     70   }
     71 }