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 }