// SJS file for CSP redirect mochitests // This file serves pages which can optionally specify a Content Security Policy function handleRequest(request, response) { var query = {}; request.queryString.split('&').forEach(function (val) { var [name, value] = val.split('='); query[name] = unescape(value); }); response.setHeader("Cache-Control", "no-cache", false); response.setHeader("Content-Type", "text/html", false); var resource = "/tests/content/base/test/file_csp_redirects_resource.sjs"; // CSP header value if (query["csp"] == 1) { if (query["spec"] == 1) { response.setHeader("Content-Security-Policy", "default-src 'self' ; style-src 'self' 'unsafe-inline'", false); } else { response.setHeader("X-Content-Security-Policy", "allow 'self'", false); } } // downloadable font that redirects to another site if (query["testid"] == "font-src") { var resp = '' + '
test
'; response.write(resp); return; } if (query["testid"] == "font-src-spec-compliant") { var resp = '' + '
test
'; response.write(resp); return; } // iframe that redirects to another site if (query["testid"] == "frame-src") { response.write(''); return; } if (query["testid"] == "frame-src-spec-compliant") { response.write(''); return; } // image that redirects to another site if (query["testid"] == "img-src") { response.write(''); return; } if (query["testid"] == "img-src-spec-compliant") { response.write(''); return; } // video content that redirects to another site if (query["testid"] == "media-src") { response.write(''); return; } if (query["testid"] == "media-src-spec-compliant") { response.write(''); return; } // object content that redirects to another site if (query["testid"] == "object-src") { response.write(''); return; } if (query["testid"] == "object-src-spec-compliant") { response.write(''); return; } // external script that redirects to another site if (query["testid"] == "script-src") { response.write(''); return; } if (query["testid"] == "script-src-spec-compliant") { response.write(''); return; } // external stylesheet that redirects to another site if (query["testid"] == "style-src") { response.write(''); return; } if (query["testid"] == "style-src-spec-compliant") { response.write(''); return; } // worker script resource that redirects to another site if (query["testid"] == "worker") { response.write(''); return; } if (query["testid"] == "worker-spec-compliant") { response.write(''); return; } // script that XHR's to a resource that redirects to another site if (query["testid"] == "xhr-src") { response.write(''); return; } if (query["testid"] == "xhr-src-spec-compliant") { response.write(''); return; } }