summaryrefslogtreecommitdiffstats
path: root/dom/security/test/csp/file_redirect_worker.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'dom/security/test/csp/file_redirect_worker.sjs')
-rw-r--r--dom/security/test/csp/file_redirect_worker.sjs34
1 files changed, 34 insertions, 0 deletions
diff --git a/dom/security/test/csp/file_redirect_worker.sjs b/dom/security/test/csp/file_redirect_worker.sjs
new file mode 100644
index 0000000000..5cf211484e
--- /dev/null
+++ b/dom/security/test/csp/file_redirect_worker.sjs
@@ -0,0 +1,34 @@
+// SJS file to serve resources for CSP redirect tests
+// This file redirects to a specified resource.
+const THIS_SITE = "http://mochi.test:8888";
+const OTHER_SITE = "http://example.com";
+
+function handleRequest(request, response) {
+ var query = {};
+ request.queryString.split("&").forEach(function (val) {
+ var [name, value] = val.split("=");
+ query[name] = unescape(value);
+ });
+
+ var resource = query.path;
+
+ response.setHeader("Cache-Control", "no-cache", false);
+ var loc = "";
+
+ // redirect to a resource on this site
+ if (query.redir == "same") {
+ loc = THIS_SITE + resource + "#" + query.page_id;
+ }
+
+ // redirect to a resource on a different site
+ else if (query.redir == "other") {
+ loc = OTHER_SITE + resource + "#" + query.page_id;
+ }
+
+ response.setStatusLine("1.1", 302, "Found");
+ response.setHeader("Location", loc, false);
+
+ response.write(
+ '<html><head><meta http-equiv="refresh" content="0; url=' + loc + '">'
+ );
+}