tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>