worker-dedicated-constructor.sub.html (1505B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <html lang="en"> 6 <meta charset="utf-8"> 7 <title>HTTP headers on request for dedicated worker via the "Worker" constructor</title> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/fetch/metadata/resources/helper.sub.js"></script> 11 <script type="module"> 12 'use strict'; 13 function induceRequest(url, options) { 14 return new Promise((resolve, reject) => { 15 const worker = new Worker(url, options); 16 worker.onmessage = resolve; 17 worker.onerror = reject; 18 }); 19 } 20 21 {%- for subtest in subtests %} 22 23 promise_test(() => { 24 const key = '{{uuid()}}'; 25 const url = makeRequestURL( 26 key, 27 [% subtest.origins %], 28 { mime: 'application/javascript', body: 'postMessage("")' } 29 ); 30 31 return induceRequest(url 32 {%- if subtest.options -%} 33 , [% subtest.options | tojson %] 34 {%- endif -%} 35 ) 36 .then(() => retrieve(key)) 37 .then((headers) => { 38 {%- if subtest.expected == none %} 39 assert_not_own_property(headers, '[%subtest.headerName%]'); 40 {%- else %} 41 assert_own_property(headers, '[%subtest.headerName%]'); 42 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 43 {%- endif %} 44 }); 45 }, '[%subtest.headerName%] - [%subtest.description | pad("end", ", ")%][%subtest.options|collection("options")%]'); 46 47 {%- endfor %} 48 </script> 49 </html>