summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/common/security-features/scope/document.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testing/web-platform/tests/common/security-features/scope/document.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/web-platform/tests/common/security-features/scope/document.py b/testing/web-platform/tests/common/security-features/scope/document.py
new file mode 100644
index 0000000000..9a9f045e64
--- /dev/null
+++ b/testing/web-platform/tests/common/security-features/scope/document.py
@@ -0,0 +1,36 @@
+import os, sys, json
+
+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
+import importlib
+util = importlib.import_module("common.security-features.scope.util")
+
+def main(request, response):
+ policyDeliveries = json.loads(request.GET.first(b"policyDeliveries", b"[]"))
+ maybe_additional_headers = {}
+ meta = u''
+ error = u''
+ for delivery in policyDeliveries:
+ if delivery[u'deliveryType'] == u'meta':
+ if delivery[u'key'] == u'referrerPolicy':
+ meta += u'<meta name="referrer" content="%s">' % delivery[u'value']
+ else:
+ error = u'invalid delivery key'
+ elif delivery[u'deliveryType'] == u'http-rp':
+ if delivery[u'key'] == u'referrerPolicy':
+ maybe_additional_headers[b'Referrer-Policy'] = isomorphic_encode(delivery[u'value'])
+ else:
+ error = u'invalid delivery key'
+ else:
+ error = u'invalid deliveryType'
+
+ handler = lambda: util.get_template(u"document.html.template") % ({
+ u"meta": meta,
+ u"error": error
+ })
+ util.respond(
+ request,
+ response,
+ payload_generator=handler,
+ content_type=b"text/html",
+ maybe_additional_headers=maybe_additional_headers)