element-embed.sub.html (1537B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <html lang="en"> 6 <meta charset="utf-8"> 7 <title>HTTP headers on request for HTML "embed" element source</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 <body> 12 <script> 13 'use strict'; 14 15 const params = { 16 body: ` 17 <svg xmlns="http://www.w3.org/2000/svg" width="123" height="123"> 18 <rect fill="lime" width="123" height="123"/> 19 </svg> 20 `, 21 mime: 'image/svg+xml' 22 }; 23 24 function induceRequest(t, url) { 25 const embed = document.createElement('embed'); 26 embed.setAttribute('src', url); 27 document.body.appendChild(embed); 28 29 t.add_cleanup(() => embed.remove()); 30 31 return new Promise((resolve) => embed.addEventListener('load', resolve)); 32 } 33 34 {%- for subtest in subtests %} 35 36 promise_test((t) => { 37 const key = '{{uuid()}}'; 38 39 return induceRequest(t, makeRequestURL(key, [% subtest.origins %], params)) 40 .then(() => retrieve(key)) 41 .then((headers) => { 42 {%- if subtest.expected == none %} 43 assert_not_own_property(headers, '[%subtest.headerName%]'); 44 {%- else %} 45 assert_own_property(headers, '[%subtest.headerName%]'); 46 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 47 {%- endif %} 48 }); 49 }, '[%subtest.headerName%][%subtest.description | pad("start", " - ")%]'); 50 51 {%- endfor %} 52 </script> 53 </body> 54 </html>