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