element-video-poster.https.sub.html (8873B)
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/element-video-poster.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <title>HTTP headers on request for HTML "video" element "poster"</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 const params = { 19 body: ` 20 <svg xmlns="http://www.w3.org/2000/svg" width="123" height="123"> 21 <rect fill="lime" width="123" height="123"/> 22 </svg> 23 `, 24 mime: 'image/svg+xml' 25 }; 26 27 function induceRequest(t, url) { 28 var video = document.createElement('video'); 29 video.setAttribute('poster', url); 30 document.body.appendChild(video); 31 32 const poll = () => { 33 if (video.clientWidth === 123) { 34 return; 35 } 36 37 return new Promise((resolve) => t.step_timeout(resolve, 0)) 38 .then(poll); 39 }; 40 t.add_cleanup(() => video.remove()); 41 42 return poll(); 43 } 44 45 promise_test((t) => { 46 const key = '{{uuid()}}'; 47 48 return induceRequest(t, makeRequestURL(key, ['httpsOrigin'], params)) 49 .then(() => retrieve(key)) 50 .then((headers) => { 51 assert_own_property(headers, 'sec-fetch-site'); 52 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 53 }); 54 }, 'sec-fetch-site - Same origin'); 55 56 promise_test((t) => { 57 const key = '{{uuid()}}'; 58 59 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'], params)) 60 .then(() => retrieve(key)) 61 .then((headers) => { 62 assert_own_property(headers, 'sec-fetch-site'); 63 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 64 }); 65 }, 'sec-fetch-site - Cross-site'); 66 67 promise_test((t) => { 68 const key = '{{uuid()}}'; 69 70 return induceRequest(t, makeRequestURL(key, ['httpsSameSite'], params)) 71 .then(() => retrieve(key)) 72 .then((headers) => { 73 assert_own_property(headers, 'sec-fetch-site'); 74 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 75 }); 76 }, 'sec-fetch-site - Same site'); 77 78 promise_test((t) => { 79 const key = '{{uuid()}}'; 80 81 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], params)) 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(t, makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], params)) 93 .then(() => retrieve(key)) 94 .then((headers) => { 95 assert_own_property(headers, 'sec-fetch-site'); 96 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 97 }); 98 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect'); 99 100 promise_test((t) => { 101 const key = '{{uuid()}}'; 102 103 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], params)) 104 .then(() => retrieve(key)) 105 .then((headers) => { 106 assert_own_property(headers, 'sec-fetch-site'); 107 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 108 }); 109 }, 'sec-fetch-site - Cross-Site -> Same Origin'); 110 111 promise_test((t) => { 112 const key = '{{uuid()}}'; 113 114 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], params)) 115 .then(() => retrieve(key)) 116 .then((headers) => { 117 assert_own_property(headers, 'sec-fetch-site'); 118 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 119 }); 120 }, 'sec-fetch-site - Cross-Site -> Same-Site'); 121 122 promise_test((t) => { 123 const key = '{{uuid()}}'; 124 125 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], params)) 126 .then(() => retrieve(key)) 127 .then((headers) => { 128 assert_own_property(headers, 'sec-fetch-site'); 129 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 130 }); 131 }, 'sec-fetch-site - Cross-Site -> Cross-Site'); 132 133 promise_test((t) => { 134 const key = '{{uuid()}}'; 135 136 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], params)) 137 .then(() => retrieve(key)) 138 .then((headers) => { 139 assert_own_property(headers, 'sec-fetch-site'); 140 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 141 }); 142 }, 'sec-fetch-site - Same-Origin -> Same Origin'); 143 144 promise_test((t) => { 145 const key = '{{uuid()}}'; 146 147 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], params)) 148 .then(() => retrieve(key)) 149 .then((headers) => { 150 assert_own_property(headers, 'sec-fetch-site'); 151 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 152 }); 153 }, 'sec-fetch-site - Same-Origin -> Same-Site'); 154 155 promise_test((t) => { 156 const key = '{{uuid()}}'; 157 158 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], params)) 159 .then(() => retrieve(key)) 160 .then((headers) => { 161 assert_own_property(headers, 'sec-fetch-site'); 162 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 163 }); 164 }, 'sec-fetch-site - Same-Origin -> Cross-Site'); 165 166 promise_test((t) => { 167 const key = '{{uuid()}}'; 168 169 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], params)) 170 .then(() => retrieve(key)) 171 .then((headers) => { 172 assert_own_property(headers, 'sec-fetch-site'); 173 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 174 }); 175 }, 'sec-fetch-site - Same-Site -> Same Origin'); 176 177 promise_test((t) => { 178 const key = '{{uuid()}}'; 179 180 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], params)) 181 .then(() => retrieve(key)) 182 .then((headers) => { 183 assert_own_property(headers, 'sec-fetch-site'); 184 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 185 }); 186 }, 'sec-fetch-site - Same-Site -> Same-Site'); 187 188 promise_test((t) => { 189 const key = '{{uuid()}}'; 190 191 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], params)) 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-Site -> Cross-Site'); 198 199 promise_test((t) => { 200 const key = '{{uuid()}}'; 201 202 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], params)) 203 .then(() => retrieve(key)) 204 .then((headers) => { 205 assert_own_property(headers, 'sec-fetch-site'); 206 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 207 }); 208 }, 'sec-fetch-site - HTTPS downgrade-upgrade'); 209 210 promise_test((t) => { 211 const key = '{{uuid()}}'; 212 213 return induceRequest(t, makeRequestURL(key, [], params)) 214 .then(() => retrieve(key)) 215 .then((headers) => { 216 assert_own_property(headers, 'sec-fetch-mode'); 217 assert_array_equals(headers['sec-fetch-mode'], ['no-cors']); 218 }); 219 }, 'sec-fetch-mode'); 220 221 promise_test((t) => { 222 const key = '{{uuid()}}'; 223 224 return induceRequest(t, makeRequestURL(key, [], params)) 225 .then(() => retrieve(key)) 226 .then((headers) => { 227 assert_own_property(headers, 'sec-fetch-dest'); 228 assert_array_equals(headers['sec-fetch-dest'], ['image']); 229 }); 230 }, 'sec-fetch-dest'); 231 232 promise_test((t) => { 233 const key = '{{uuid()}}'; 234 235 return induceRequest(t, makeRequestURL(key, [], params)) 236 .then(() => retrieve(key)) 237 .then((headers) => { 238 assert_not_own_property(headers, 'sec-fetch-user'); 239 }); 240 }, 'sec-fetch-user'); 241 242 promise_test((t) => { 243 const key = '{{uuid()}}'; 244 245 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'], params)) 246 .then(() => retrieve(key)) 247 .then((headers) => { 248 assert_own_property(headers, 'sec-fetch-storage-access'); 249 assert_array_equals(headers['sec-fetch-storage-access'], ['none']); 250 }); 251 }, 'sec-fetch-storage-access - Cross-site'); 252 253 promise_test((t) => { 254 const key = '{{uuid()}}'; 255 256 return induceRequest(t, makeRequestURL(key, ['httpsSameSite'], params)) 257 .then(() => retrieve(key)) 258 .then((headers) => { 259 assert_not_own_property(headers, 'sec-fetch-storage-access'); 260 }); 261 }, 'sec-fetch-storage-access - Same site'); 262 </script> 263 </body> 264 </html>