tor-browser

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

file_block_script_wrong_mime_server.sjs (894B)


      1 // Custom *.sjs specifically for the needs of:
      2 // Bug 1288361 - Block scripts with wrong MIME type
      3 
      4 "use strict";
      5 
      6 const WORKER = `
      7   onmessage = function(event) {
      8     postMessage("worker-loaded");
      9   };`;
     10 
     11 function handleRequest(request, response) {
     12   const query = new URLSearchParams(request.queryString);
     13 
     14   // avoid confusing cache behaviors
     15   response.setHeader("Cache-Control", "no-cache", false);
     16 
     17   // Set MIME type
     18   response.setHeader("Content-Type", query.get("mime"), false);
     19 
     20   // Deliver response
     21   switch (query.get("type")) {
     22     case "script":
     23       response.write("");
     24       break;
     25     case "worker":
     26       response.write(WORKER);
     27       break;
     28     case "worker-import":
     29       response.write(
     30         `importScripts("file_block_script_wrong_mime_server.sjs?type=script&mime=${query.get(
     31           "mime"
     32         )}");`
     33       );
     34       response.write(WORKER);
     35       break;
     36   }
     37 }