tor-browser

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

file_svg_inline_style_server.sjs (1146B)


      1 "use strict";
      2 
      3 const SVG_IMG = `<svg width="200" height="200" viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg">
      4    <style>
      5      circle {
      6        fill: orange;
      7        stroke: black;
      8        stroke-width: 10px;
      9      }
     10    </style>
     11    <circle cx="50" cy="50" r="40" />
     12    </svg>`;
     13 
     14 const SVG_IMG_NO_INLINE_STYLE = `<svg width="200" height="200" viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg">
     15    <circle cx="50" cy="50" r="40" />
     16    </svg>`;
     17 
     18 function handleRequest(request, response) {
     19   const query = request.queryString;
     20 
     21   response.setHeader("Cache-Control", "no-cache", false);
     22   response.setHeader("Content-Type", "image/svg+xml", false);
     23 
     24   if (query.includes("svg_inline_style_csp")) {
     25     response.setHeader("Content-Security-Policy", "default-src 'none'", false);
     26     response.write(SVG_IMG);
     27     return;
     28   }
     29 
     30   if (query.includes("svg_inline_style_nocsp")) {
     31     response.write(SVG_IMG);
     32     return;
     33   }
     34 
     35   if (query.includes("svg_no_inline_style")) {
     36     response.write(SVG_IMG_NO_INLINE_STYLE);
     37     return;
     38   }
     39 
     40   // we should never get here, but just in case
     41   // return something unexpected
     42   response.write("do'h");
     43 }