diff options
Diffstat (limited to 'testing/web-platform/tests/referrer-policy/generic/subresource/subresource.py')
-rw-r--r-- | testing/web-platform/tests/referrer-policy/generic/subresource/subresource.py | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/testing/web-platform/tests/referrer-policy/generic/subresource/subresource.py b/testing/web-platform/tests/referrer-policy/generic/subresource/subresource.py deleted file mode 100644 index 7571b32d0..000000000 --- a/testing/web-platform/tests/referrer-policy/generic/subresource/subresource.py +++ /dev/null @@ -1,94 +0,0 @@ -import os, sys, json, urlparse, urllib - -def get_template(template_basename): - script_directory = os.path.dirname(os.path.abspath(__file__)) - template_directory = os.path.abspath(os.path.join(script_directory, - "..", - "template")) - template_filename = os.path.join(template_directory, template_basename); - - with open(template_filename, "r") as f: - return f.read() - -# TODO(kristijanburnik): subdomain_prefix is a hardcoded value aligned with -# referrer-policy-test-case.js. The prefix should be configured in one place. -def get_swapped_origin_netloc(netloc, subdomain_prefix = "www1."): - if netloc.startswith(subdomain_prefix): - return netloc[len(subdomain_prefix):] - else: - return subdomain_prefix + netloc - -def create_redirect_url(request, cross_origin = False): - parsed = urlparse.urlsplit(request.url) - destination_netloc = parsed.netloc - if cross_origin: - destination_netloc = get_swapped_origin_netloc(parsed.netloc) - - destination_url = urlparse.urlunsplit(urlparse.SplitResult( - scheme = parsed.scheme, - netloc = destination_netloc, - path = parsed.path, - query = None, - fragment = None)) - - return destination_url - - -def redirect(url, response): - response.add_required_headers = False - response.writer.write_status(301) - response.writer.write_header("access-control-allow-origin", "*") - response.writer.write_header("location", url) - response.writer.end_headers() - response.writer.write("") - - -def preprocess_redirection(request, response): - if "redirection" not in request.GET: - return False - - redirection = request.GET["redirection"] - - if redirection == "no-redirect": - return False - elif redirection == "keep-origin-redirect": - redirect_url = create_redirect_url(request, cross_origin = False) - elif redirection == "swap-origin-redirect": - redirect_url = create_redirect_url(request, cross_origin = True) - else: - raise ValueError("Invalid redirection type '%s'" % redirection) - - redirect(redirect_url, response) - return True - - -def __noop(request, response): - return "" - - -def respond(request, - response, - status_code = 200, - content_type = "text/html", - payload_generator = __noop, - cache_control = "no-cache; must-revalidate", - access_control_allow_origin = "*"): - if preprocess_redirection(request, response): - return - - response.add_required_headers = False - response.writer.write_status(status_code) - - if access_control_allow_origin != None: - response.writer.write_header("access-control-allow-origin", - access_control_allow_origin) - response.writer.write_header("content-type", content_type) - response.writer.write_header("cache-control", cache_control) - response.writer.end_headers() - - server_data = {"headers": json.dumps(request.headers, indent = 4)} - - payload = payload_generator(server_data) - response.writer.write(payload) - - |