aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/common/security-features/scope/document.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wpt/web-platform-tests/common/security-features/scope/document.py')
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/scope/document.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/common/security-features/scope/document.py b/tests/wpt/web-platform-tests/common/security-features/scope/document.py
new file mode 100644
index 00000000000..3fc61a1e7ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/common/security-features/scope/document.py
@@ -0,0 +1,35 @@
+import os, sys, json
+
+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
+import util
+
+
+def main(request, response):
+ policyDeliveries = json.loads(request.GET.first("policyDeliveries", "[]"))
+ maybe_additional_headers = {}
+ meta = ''
+ error = ''
+ for delivery in policyDeliveries:
+ if delivery['deliveryType'] == 'meta':
+ if delivery['key'] == 'referrerPolicy':
+ meta += '<meta name="referrer" content="%s">' % delivery['value']
+ else:
+ error = 'invalid delivery key'
+ elif delivery['deliveryType'] == 'http-rp':
+ if delivery['key'] == 'referrerPolicy':
+ maybe_additional_headers['Referrer-Policy'] = delivery['value']
+ else:
+ error = 'invalid delivery key'
+ else:
+ error = 'invalid deliveryType'
+
+ handler = lambda: util.get_template("document.html.template") % ({
+ "meta": meta,
+ "error": error
+ })
+ util.respond(
+ request,
+ response,
+ payload_generator=handler,
+ content_type="text/html",
+ maybe_additional_headers=maybe_additional_headers)