// SJS file for X-Frame-Options mochitests function handleRequest(request, response) { var query = {}; var BOUNDARY = "BOUNDARYOMG3984"; request.queryString.split("&").forEach(function (val) { var [name, value] = val.split("="); query[name] = unescape(value); }); if (query.multipart == "1") { response.setHeader( "Content-Type", "multipart/x-mixed-replace;boundary=" + BOUNDARY, false ); response.setHeader("Cache-Control", "no-cache", false); response.setStatusLine(request.httpVersion, 200, "OK"); response.write("--" + BOUNDARY + "\r\n"); response.write("Content-Type: text/html\r\n\r\n"); } else { response.setHeader("Content-Type", "text/html", false); response.setHeader("Cache-Control", "no-cache", false); } var testHeaders = { deny: "DENY", sameorigin: "SAMEORIGIN", sameorigin2: "SAMEORIGIN, SAMEORIGIN", sameorigin3: "SAMEORIGIN,SAMEORIGIN , SAMEORIGIN", mixedpolicy: "DENY,SAMEORIGIN", /* added for bug 836132 */ afa: "ALLOW-FROM http://mochi.test:8888/", afd: "ALLOW-FROM http://example.com/", afa1: "ALLOW-FROM http://mochi.test:8888", afd1: "ALLOW-FROM:example.com", afd2: "ALLOW-FROM: example.com", afd3: "ALLOW-FROM example.com", afd4: "ALLOW-FROM:http://example.com", afd5: "ALLOW-FROM: http://example.com", afd6: "ALLOW-FROM http://example.com", afd7: "ALLOW-FROM:mochi.test:8888", afd8: "ALLOW-FROM: mochi.test:8888", afd9: "ALLOW-FROM:http://mochi.test:8888", afd10: "ALLOW-FROM: http://mochi.test:8888", afd11: "ALLOW-FROM mochi.test:8888", afd12: "ALLOW-FROM", afd13: "ALLOW-FROM ", afd14: "ALLOW-FROM:", }; if (testHeaders.hasOwnProperty(query.xfo)) { response.setHeader("X-Frame-Options", testHeaders[query.xfo], false); } // from the test harness we'll be checking for the presence of this element // to test if the page loaded response.write('

' + query.testid + "

"); if (query.testid == "postmessage") { response.write(""); } if (query.multipart == "1") { response.write("\r\n--" + BOUNDARY + "\r\n"); } }