diff options
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.py | 35 |
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) |