tor-browser

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

referrerdirective.sjs (1029B)


      1 // Used for bug 965727 to serve up really simple scripts reflecting the
      2 // referrer sent to load this back to the loader.
      3 
      4 function handleRequest(request, response) {
      5   // skip speculative loads.
      6 
      7   var splits = request.queryString.split("&");
      8   var params = {};
      9   splits.forEach(function (v) {
     10     let parts = v.split("=");
     11     params[parts[0]] = unescape(parts[1]);
     12   });
     13 
     14   var loadType = params.type;
     15   var referrerLevel = "error";
     16 
     17   if (request.hasHeader("Referer")) {
     18     var referrer = request.getHeader("Referer");
     19     if (referrer.indexOf("file_testserver.sjs") > -1) {
     20       referrerLevel = "full";
     21     } else {
     22       referrerLevel = "origin";
     23     }
     24   } else {
     25     referrerLevel = "none";
     26   }
     27 
     28   var theScript =
     29     'window.postResult("' + loadType + '", "' + referrerLevel + '");';
     30   response.setHeader(
     31     "Content-Type",
     32     "application/javascript; charset=utf-8",
     33     false
     34   );
     35   response.setHeader("Cache-Control", "no-cache", false);
     36 
     37   if (request.method != "OPTIONS") {
     38     response.write(theScript);
     39   }
     40 }