css-font-face.https.sub.tentative.html (8232B)
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/css-font-face.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <title>HTTP headers on request for CSS font-face</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 let count = 0; 19 20 function induceRequest(t, url) { 21 const id = `el-${count += 1}`; 22 const style = document.createElement('style'); 23 style.appendChild(document.createTextNode(` 24 @font-face { 25 font-family: wpt-font-family${id}; 26 src: url(${url}); 27 } 28 #el-${id} { 29 font-family: wpt-font-family${id}; 30 } 31 `)); 32 const div = document.createElement('div'); 33 div.setAttribute('id', 'el-' + id); 34 div.appendChild(style); 35 div.appendChild(document.createTextNode('x')); 36 document.body.appendChild(div); 37 38 t.add_cleanup(() => div.remove()); 39 40 return document.fonts.ready; 41 } 42 43 promise_test((t) => { 44 const key = '{{uuid()}}'; 45 46 return induceRequest(t, makeRequestURL(key, ['httpsOrigin'])) 47 .then(() => retrieve(key)) 48 .then((headers) => { 49 assert_own_property(headers, 'sec-fetch-site'); 50 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 51 }); 52 }, 'sec-fetch-site - Same origin'); 53 54 promise_test((t) => { 55 const key = '{{uuid()}}'; 56 57 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'])) 58 .then(() => retrieve(key)) 59 .then((headers) => { 60 assert_own_property(headers, 'sec-fetch-site'); 61 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 62 }); 63 }, 'sec-fetch-site - Cross-site'); 64 65 promise_test((t) => { 66 const key = '{{uuid()}}'; 67 68 return induceRequest(t, makeRequestURL(key, ['httpsSameSite'])) 69 .then(() => retrieve(key)) 70 .then((headers) => { 71 assert_own_property(headers, 'sec-fetch-site'); 72 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 73 }); 74 }, 'sec-fetch-site - Same site'); 75 76 promise_test((t) => { 77 const key = '{{uuid()}}'; 78 79 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'])) 80 .then(() => retrieve(key)) 81 .then((headers) => { 82 assert_own_property(headers, 'sec-fetch-site'); 83 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 84 }); 85 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect'); 86 87 promise_test((t) => { 88 const key = '{{uuid()}}'; 89 90 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'])) 91 .then(() => retrieve(key)) 92 .then((headers) => { 93 assert_own_property(headers, 'sec-fetch-site'); 94 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 95 }); 96 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect'); 97 98 promise_test((t) => { 99 const key = '{{uuid()}}'; 100 101 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'])) 102 .then(() => retrieve(key)) 103 .then((headers) => { 104 assert_own_property(headers, 'sec-fetch-site'); 105 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 106 }); 107 }, 'sec-fetch-site - Cross-Site -> Same Origin'); 108 109 promise_test((t) => { 110 const key = '{{uuid()}}'; 111 112 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'])) 113 .then(() => retrieve(key)) 114 .then((headers) => { 115 assert_own_property(headers, 'sec-fetch-site'); 116 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 117 }); 118 }, 'sec-fetch-site - Cross-Site -> Same-Site'); 119 120 promise_test((t) => { 121 const key = '{{uuid()}}'; 122 123 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'])) 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 -> Cross-Site'); 130 131 promise_test((t) => { 132 const key = '{{uuid()}}'; 133 134 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'])) 135 .then(() => retrieve(key)) 136 .then((headers) => { 137 assert_own_property(headers, 'sec-fetch-site'); 138 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 139 }); 140 }, 'sec-fetch-site - Same-Origin -> Same Origin'); 141 142 promise_test((t) => { 143 const key = '{{uuid()}}'; 144 145 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'])) 146 .then(() => retrieve(key)) 147 .then((headers) => { 148 assert_own_property(headers, 'sec-fetch-site'); 149 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 150 }); 151 }, 'sec-fetch-site - Same-Origin -> Same-Site'); 152 153 promise_test((t) => { 154 const key = '{{uuid()}}'; 155 156 return induceRequest(t, makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'])) 157 .then(() => retrieve(key)) 158 .then((headers) => { 159 assert_own_property(headers, 'sec-fetch-site'); 160 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 161 }); 162 }, 'sec-fetch-site - Same-Origin -> Cross-Site'); 163 164 promise_test((t) => { 165 const key = '{{uuid()}}'; 166 167 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'])) 168 .then(() => retrieve(key)) 169 .then((headers) => { 170 assert_own_property(headers, 'sec-fetch-site'); 171 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 172 }); 173 }, 'sec-fetch-site - Same-Site -> Same Origin'); 174 175 promise_test((t) => { 176 const key = '{{uuid()}}'; 177 178 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'])) 179 .then(() => retrieve(key)) 180 .then((headers) => { 181 assert_own_property(headers, 'sec-fetch-site'); 182 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 183 }); 184 }, 'sec-fetch-site - Same-Site -> Same-Site'); 185 186 promise_test((t) => { 187 const key = '{{uuid()}}'; 188 189 return induceRequest(t, makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'])) 190 .then(() => retrieve(key)) 191 .then((headers) => { 192 assert_own_property(headers, 'sec-fetch-site'); 193 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 194 }); 195 }, 'sec-fetch-site - Same-Site -> Cross-Site'); 196 197 promise_test((t) => { 198 const key = '{{uuid()}}'; 199 200 return induceRequest(t, makeRequestURL(key, [])) 201 .then(() => retrieve(key)) 202 .then((headers) => { 203 assert_own_property(headers, 'sec-fetch-mode'); 204 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 205 }); 206 }, 'sec-fetch-mode'); 207 208 promise_test((t) => { 209 const key = '{{uuid()}}'; 210 211 return induceRequest(t, makeRequestURL(key, [])) 212 .then(() => retrieve(key)) 213 .then((headers) => { 214 assert_own_property(headers, 'sec-fetch-dest'); 215 assert_array_equals(headers['sec-fetch-dest'], ['font']); 216 }); 217 }, 'sec-fetch-dest'); 218 219 promise_test((t) => { 220 const key = '{{uuid()}}'; 221 222 return induceRequest(t, makeRequestURL(key, [])) 223 .then(() => retrieve(key)) 224 .then((headers) => { 225 assert_not_own_property(headers, 'sec-fetch-user'); 226 }); 227 }, 'sec-fetch-user'); 228 229 promise_test((t) => { 230 const key = '{{uuid()}}'; 231 232 return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'])) 233 .then(() => retrieve(key)) 234 .then((headers) => { 235 assert_not_own_property(headers, 'sec-fetch-storage-access'); 236 }); 237 }, 'sec-fetch-storage-access - Cross-site'); 238 239 promise_test((t) => { 240 const key = '{{uuid()}}'; 241 242 return induceRequest(t, makeRequestURL(key, ['httpsSameSite'])) 243 .then(() => retrieve(key)) 244 .then((headers) => { 245 assert_not_own_property(headers, 'sec-fetch-storage-access'); 246 }); 247 }, 'sec-fetch-storage-access - Same site'); 248 </script> 249 </body> 250 </html>