serviceworker.https.sub.html (2542B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <!DOCTYPE html> 6 <html lang="en"> 7 <meta charset="utf-8"> 8 <title>HTTP headers on request for Service Workers</title> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <script src="/fetch/metadata/resources/helper.sub.js"></script> 12 <body> 13 <script> 14 'use strict'; 15 16 function induceRequest(t, url, options, event, clear) { 17 // Register a service worker and check the request header. 18 return navigator.serviceWorker.register(url, options) 19 .then((registration) => { 20 t.add_cleanup(() => registration.unregister()); 21 if (event === 'register') { 22 return; 23 } 24 return clear().then(() => registration.update()); 25 }); 26 } 27 28 {%- for subtest in subtests %} 29 {%- set origin = subtest.origins[0]|default('httpsOrigin') %} 30 {%- if origin == 'httpsOrigin' or not origin %} 31 32 promise_test((t) => { 33 const key = '{{uuid()}}'; 34 const url = makeRequestURL( 35 key, [% subtest.origins %], { mime: 'application/javascript' } 36 ); 37 38 return induceRequest(t, url, [%subtest.options | default({}) | tojson%], 'register') 39 .then(() => retrieve(key)) 40 .then((headers) => { 41 {%- if subtest.expected == none %} 42 assert_not_own_property(headers, '[%subtest.headerName%]'); 43 {%- else %} 44 assert_own_property(headers, '[%subtest.headerName%]'); 45 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 46 {%- endif %} 47 }); 48 }, '[%subtest.headerName%] - [%subtest.description | pad("end", ", ")%][%subtest.options | collection("options")%] - registration'); 49 50 promise_test((t) => { 51 const key = '{{uuid()}}'; 52 const url = makeRequestURL( 53 key, [% subtest.origins %], { mime: 'application/javascript' } 54 ); 55 56 return induceRequest(t, url, [%subtest.options | default({}) | tojson%], 'update', () => retrieve(key)) 57 .then(() => retrieve(key)) 58 .then((headers) => { 59 {%- if subtest.expected == none %} 60 assert_not_own_property(headers, '[%subtest.headerName%]'); 61 {%- else %} 62 assert_own_property(headers, '[%subtest.headerName%]'); 63 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 64 {%- endif %} 65 }); 66 }, '[%subtest.headerName%] - [%subtest.description | pad("end", ", ")%][%subtest.options | collection("options")%] - updating'); 67 68 {%- endif %} 69 {%- endfor %} 70 </script> 71 </body> 72 </html>