/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* vim: set sts=2 sw=2 et tw=80 ft=javascript: */ "use strict"; Cu.importGlobalProperties(["URLSearchParams"]); function handleRequest(request, response) { let params = new URLSearchParams(request.queryString); switch (params.get("test")) { case "cache": /* eslint-disable-next-line no-use-before-define */ handleCacheTestRequest(request, response); break; case "user-agent": /* eslint-disable-next-line no-use-before-define */ handleUserAgentTestRequest(request, response); break; case "injected-script": /* eslint-disable-next-line no-use-before-define */ handleInjectedScriptTestRequest(request, response, params); break; } } function handleCacheTestRequest(request, response) { response.setHeader("Content-Type", "text/plain; charset=UTF-8", false); if (request.hasHeader("pragma") && request.hasHeader("cache-control")) { response.write( `${request.getHeader("pragma")}:${request.getHeader("cache-control")}` ); } else { response.write("empty cache headers"); } } function handleUserAgentTestRequest(request, response) { response.setHeader("Content-Type", "text/html", false); const userAgentHeader = request.hasHeader("user-agent") ? request.getHeader("user-agent") : null; const query = new URLSearchParams(request.queryString); if (query.get("crossOriginIsolated") === "true") { response.setHeader("Cross-Origin-Opener-Policy", "same-origin", false); } const IFRAME_HTML = `
injected script NOT executed${content} `); }