diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-04-29 21:53:13 -0400 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-04-30 01:17:08 -0400 |
commit | 7776ed79d7505ae97ca4934556d7f8efe75b4c58 (patch) | |
tree | 9ec1c014e5d588356b3ba90ba26cc1497d86991d /tests/wpt/web-platform-tests/common/security-features/scope/worker.py | |
parent | 62031e3cb0f6e2b2fc74665135cdff040fb980c8 (diff) | |
download | servo-7776ed79d7505ae97ca4934556d7f8efe75b4c58.tar.gz servo-7776ed79d7505ae97ca4934556d7f8efe75b4c58.zip |
Update web-platform-tests to revision d73b07b850fa51f23e846518bb6e8c59c58eef19
Diffstat (limited to 'tests/wpt/web-platform-tests/common/security-features/scope/worker.py')
-rw-r--r-- | tests/wpt/web-platform-tests/common/security-features/scope/worker.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/common/security-features/scope/worker.py b/tests/wpt/web-platform-tests/common/security-features/scope/worker.py new file mode 100644 index 00000000000..40817f6a3a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/scope/worker.py @@ -0,0 +1,40 @@ +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', '[]')) + worker_type = request.GET.first('type', 'classic') + commonjs_url = '%s://%s:%s/common/security-features/resources/common.js' % ( + request.url_parts.scheme, request.url_parts.hostname, + request.url_parts.port) + if worker_type == 'classic': + import_line = 'importScripts("%s");' % commonjs_url + else: + import_line = 'import "%s";' % commonjs_url + + maybe_additional_headers = {} + error = '' + for delivery in policyDeliveries: + if delivery['deliveryType'] == 'meta': + error = '<meta> cannot be used in WorkerGlobalScope' + elif delivery['deliveryType'] == 'http-rp': + if delivery['key'] == 'referrerPolicy': + maybe_additional_headers['Referrer-Policy'] = delivery['value'] + else: + error = 'invalid delivery key for http-rp: %s' % delivery['key'] + else: + error = 'invalid deliveryType: %s' % delivery['deliveryType'] + + handler = lambda: util.get_template('worker.js.template') % ({ + 'import': import_line, + 'error': error + }) + util.respond( + request, + response, + payload_generator=handler, + content_type='text/javascript', + maybe_additional_headers=maybe_additional_headers) |