audioworklet.https.sub.html (9023B)
1 <!DOCTYPE html> 2 <!-- 3 This test was procedurally generated. Please do not modify it directly. 4 Sources: 5 - fetch/metadata/tools/fetch-metadata.conf.yml 6 - fetch/metadata/tools/templates/audioworklet.https.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <title>HTTP headers on request for AudioWorklet module</title> 11 <script src="/resources/testharness.js"></script> 12 <script src="/resources/testharnessreport.js"></script> 13 <script src="/resources/testdriver.js"></script> 14 <script src="/resources/testdriver-vendor.js"></script> 15 <script src="/fetch/metadata/resources/helper.sub.js"></script> 16 <body> 17 <script> 18 'use strict'; 19 20 function induceRequest(url, test) { 21 return test_driver.bless( 22 'Enable WebAudio playback', 23 () => { 24 const audioContext = new AudioContext(); 25 26 test.add_cleanup(() => audioContext.close()); 27 28 return audioContext.audioWorklet.addModule(url); 29 } 30 ); 31 } 32 33 promise_test((t) => { 34 const key = '{{uuid()}}'; 35 36 return induceRequest( 37 makeRequestURL(key, ['httpsOrigin'], {mime: 'text/javascript'}), 38 t 39 ) 40 .then(() => retrieve(key)) 41 .then((headers) => { 42 assert_own_property(headers, 'sec-fetch-site'); 43 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 44 }); 45 }, 'sec-fetch-site - Same origin'); 46 47 promise_test((t) => { 48 const key = '{{uuid()}}'; 49 50 return induceRequest( 51 makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/javascript'}), 52 t 53 ) 54 .then(() => retrieve(key)) 55 .then((headers) => { 56 assert_own_property(headers, 'sec-fetch-site'); 57 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 58 }); 59 }, 'sec-fetch-site - Cross-site'); 60 61 promise_test((t) => { 62 const key = '{{uuid()}}'; 63 64 return induceRequest( 65 makeRequestURL(key, ['httpsSameSite'], {mime: 'text/javascript'}), 66 t 67 ) 68 .then(() => retrieve(key)) 69 .then((headers) => { 70 assert_own_property(headers, 'sec-fetch-site'); 71 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 72 }); 73 }, 'sec-fetch-site - Same site'); 74 75 promise_test((t) => { 76 const key = '{{uuid()}}'; 77 78 return induceRequest( 79 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], {mime: 'text/javascript'}), 80 t 81 ) 82 .then(() => retrieve(key)) 83 .then((headers) => { 84 assert_own_property(headers, 'sec-fetch-site'); 85 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 86 }); 87 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect'); 88 89 promise_test((t) => { 90 const key = '{{uuid()}}'; 91 92 return induceRequest( 93 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], {mime: 'text/javascript'}), 94 t 95 ) 96 .then(() => retrieve(key)) 97 .then((headers) => { 98 assert_own_property(headers, 'sec-fetch-site'); 99 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 100 }); 101 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect'); 102 103 promise_test((t) => { 104 const key = '{{uuid()}}'; 105 106 return induceRequest( 107 makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], {mime: 'text/javascript'}), 108 t 109 ) 110 .then(() => retrieve(key)) 111 .then((headers) => { 112 assert_own_property(headers, 'sec-fetch-site'); 113 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 114 }); 115 }, 'sec-fetch-site - Cross-Site -> Same Origin'); 116 117 promise_test((t) => { 118 const key = '{{uuid()}}'; 119 120 return induceRequest( 121 makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], {mime: 'text/javascript'}), 122 t 123 ) 124 .then(() => retrieve(key)) 125 .then((headers) => { 126 assert_own_property(headers, 'sec-fetch-site'); 127 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 128 }); 129 }, 'sec-fetch-site - Cross-Site -> Same-Site'); 130 131 promise_test((t) => { 132 const key = '{{uuid()}}'; 133 134 return induceRequest( 135 makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], {mime: 'text/javascript'}), 136 t 137 ) 138 .then(() => retrieve(key)) 139 .then((headers) => { 140 assert_own_property(headers, 'sec-fetch-site'); 141 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 142 }); 143 }, 'sec-fetch-site - Cross-Site -> Cross-Site'); 144 145 promise_test((t) => { 146 const key = '{{uuid()}}'; 147 148 return induceRequest( 149 makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], {mime: 'text/javascript'}), 150 t 151 ) 152 .then(() => retrieve(key)) 153 .then((headers) => { 154 assert_own_property(headers, 'sec-fetch-site'); 155 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 156 }); 157 }, 'sec-fetch-site - Same-Origin -> Same Origin'); 158 159 promise_test((t) => { 160 const key = '{{uuid()}}'; 161 162 return induceRequest( 163 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], {mime: 'text/javascript'}), 164 t 165 ) 166 .then(() => retrieve(key)) 167 .then((headers) => { 168 assert_own_property(headers, 'sec-fetch-site'); 169 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 170 }); 171 }, 'sec-fetch-site - Same-Origin -> Same-Site'); 172 173 promise_test((t) => { 174 const key = '{{uuid()}}'; 175 176 return induceRequest( 177 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], {mime: 'text/javascript'}), 178 t 179 ) 180 .then(() => retrieve(key)) 181 .then((headers) => { 182 assert_own_property(headers, 'sec-fetch-site'); 183 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 184 }); 185 }, 'sec-fetch-site - Same-Origin -> Cross-Site'); 186 187 promise_test((t) => { 188 const key = '{{uuid()}}'; 189 190 return induceRequest( 191 makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], {mime: 'text/javascript'}), 192 t 193 ) 194 .then(() => retrieve(key)) 195 .then((headers) => { 196 assert_own_property(headers, 'sec-fetch-site'); 197 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 198 }); 199 }, 'sec-fetch-site - Same-Site -> Same Origin'); 200 201 promise_test((t) => { 202 const key = '{{uuid()}}'; 203 204 return induceRequest( 205 makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], {mime: 'text/javascript'}), 206 t 207 ) 208 .then(() => retrieve(key)) 209 .then((headers) => { 210 assert_own_property(headers, 'sec-fetch-site'); 211 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 212 }); 213 }, 'sec-fetch-site - Same-Site -> Same-Site'); 214 215 promise_test((t) => { 216 const key = '{{uuid()}}'; 217 218 return induceRequest( 219 makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], {mime: 'text/javascript'}), 220 t 221 ) 222 .then(() => retrieve(key)) 223 .then((headers) => { 224 assert_own_property(headers, 'sec-fetch-site'); 225 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 226 }); 227 }, 'sec-fetch-site - Same-Site -> Cross-Site'); 228 229 promise_test((t) => { 230 const key = '{{uuid()}}'; 231 232 return induceRequest( 233 makeRequestURL(key, [], {mime: 'text/javascript'}), 234 t 235 ) 236 .then(() => retrieve(key)) 237 .then((headers) => { 238 assert_own_property(headers, 'sec-fetch-mode'); 239 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 240 }); 241 }, 'sec-fetch-mode'); 242 243 promise_test((t) => { 244 const key = '{{uuid()}}'; 245 246 return induceRequest( 247 makeRequestURL(key, [], {mime: 'text/javascript'}), 248 t 249 ) 250 .then(() => retrieve(key)) 251 .then((headers) => { 252 assert_own_property(headers, 'sec-fetch-dest'); 253 assert_array_equals(headers['sec-fetch-dest'], ['audioworklet']); 254 }); 255 }, 'sec-fetch-dest'); 256 257 promise_test((t) => { 258 const key = '{{uuid()}}'; 259 260 return induceRequest( 261 makeRequestURL(key, [], {mime: 'text/javascript'}), 262 t 263 ) 264 .then(() => retrieve(key)) 265 .then((headers) => { 266 assert_not_own_property(headers, 'sec-fetch-user'); 267 }); 268 }, 'sec-fetch-user'); 269 270 promise_test((t) => { 271 const key = '{{uuid()}}'; 272 273 return induceRequest( 274 makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/javascript'}), 275 t 276 ) 277 .then(() => retrieve(key)) 278 .then((headers) => { 279 assert_not_own_property(headers, 'sec-fetch-storage-access'); 280 }); 281 }, 'sec-fetch-storage-access - Cross-site'); 282 283 promise_test((t) => { 284 const key = '{{uuid()}}'; 285 286 return induceRequest( 287 makeRequestURL(key, ['httpsSameSite'], {mime: 'text/javascript'}), 288 t 289 ) 290 .then(() => retrieve(key)) 291 .then((headers) => { 292 assert_not_own_property(headers, 'sec-fetch-storage-access'); 293 }); 294 }, 'sec-fetch-storage-access - Same site'); 295 </script> 296 </body> 297 </html>