aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/common/security-features/scope/worker.py
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-04-29 21:53:13 -0400
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-04-30 01:17:08 -0400
commit7776ed79d7505ae97ca4934556d7f8efe75b4c58 (patch)
tree9ec1c014e5d588356b3ba90ba26cc1497d86991d /tests/wpt/web-platform-tests/common/security-features/scope/worker.py
parent62031e3cb0f6e2b2fc74665135cdff040fb980c8 (diff)
downloadservo-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.py40
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)