tor-browser

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

header-refresh.https.optional.sub.html (9226B)


      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/header-refresh.optional.sub.html
      7 -->
      8 <html lang="en">
      9  <meta charset="utf-8">
     10  <meta name="timeout" content="long">
     11  <title>HTTP headers on request for HTTP "Refresh" header</title>
     12  <script src="/resources/testharness.js"></script>
     13  <script src="/resources/testharnessreport.js"></script>
     14  <script src="/fetch/metadata/resources/helper.sub.js"></script>
     15  <body>
     16  <script>
     17  'use strict';
     18 
     19  function induceRequest(url, test) {
     20    const win = window.open();
     21    test.add_cleanup(() => win.close());
     22 
     23    win.location = `/common/refresh.py?location=${encodeURIComponent(url)}`
     24 
     25    return new Promise((resolve) => {
     26      addEventListener('message', (event) => {
     27          if (event.source === win) {
     28            resolve();
     29          }
     30        });
     31    });
     32  }
     33 
     34  const responseParams = {
     35    mime: 'text/html',
     36    body: `<script>opener.postMessage(0, '*')</${''}script>`
     37  };
     38 
     39  promise_test((t) => {
     40    const key = '{{uuid()}}';
     41 
     42    return induceRequest(
     43        makeRequestURL(key, ['httpsOrigin'], responseParams), t
     44      )
     45      .then(() => retrieve(key))
     46      .then((headers) => {
     47          assert_own_property(headers, 'sec-fetch-site');
     48          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     49        });
     50  }, 'sec-fetch-site - Same origin');
     51 
     52  promise_test((t) => {
     53    const key = '{{uuid()}}';
     54 
     55    return induceRequest(
     56        makeRequestURL(key, ['httpsCrossSite'], responseParams), t
     57      )
     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(
     69        makeRequestURL(key, ['httpsSameSite'], responseParams), t
     70      )
     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(
     82        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams), t
     83      )
     84      .then(() => retrieve(key))
     85      .then((headers) => {
     86          assert_own_property(headers, 'sec-fetch-site');
     87          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
     88        });
     89  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect');
     90 
     91  promise_test((t) => {
     92    const key = '{{uuid()}}';
     93 
     94    return induceRequest(
     95        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams), t
     96      )
     97      .then(() => retrieve(key))
     98      .then((headers) => {
     99          assert_own_property(headers, 'sec-fetch-site');
    100          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    101        });
    102  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect');
    103 
    104  promise_test((t) => {
    105    const key = '{{uuid()}}';
    106 
    107    return induceRequest(
    108        makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams), 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'], responseParams), t
    122      )
    123      .then(() => retrieve(key))
    124      .then((headers) => {
    125          assert_own_property(headers, 'sec-fetch-site');
    126          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    127        });
    128  }, 'sec-fetch-site - Cross-Site -> Same-Site');
    129 
    130  promise_test((t) => {
    131    const key = '{{uuid()}}';
    132 
    133    return induceRequest(
    134        makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams), t
    135      )
    136      .then(() => retrieve(key))
    137      .then((headers) => {
    138          assert_own_property(headers, 'sec-fetch-site');
    139          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    140        });
    141  }, 'sec-fetch-site - Cross-Site -> Cross-Site');
    142 
    143  promise_test((t) => {
    144    const key = '{{uuid()}}';
    145 
    146    return induceRequest(
    147        makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams), t
    148      )
    149      .then(() => retrieve(key))
    150      .then((headers) => {
    151          assert_own_property(headers, 'sec-fetch-site');
    152          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    153        });
    154  }, 'sec-fetch-site - Same-Origin -> Same Origin');
    155 
    156  promise_test((t) => {
    157    const key = '{{uuid()}}';
    158 
    159    return induceRequest(
    160        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams), t
    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-site']);
    166        });
    167  }, 'sec-fetch-site - Same-Origin -> Same-Site');
    168 
    169  promise_test((t) => {
    170    const key = '{{uuid()}}';
    171 
    172    return induceRequest(
    173        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams), t
    174      )
    175      .then(() => retrieve(key))
    176      .then((headers) => {
    177          assert_own_property(headers, 'sec-fetch-site');
    178          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    179        });
    180  }, 'sec-fetch-site - Same-Origin -> Cross-Site');
    181 
    182  promise_test((t) => {
    183    const key = '{{uuid()}}';
    184 
    185    return induceRequest(
    186        makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams), t
    187      )
    188      .then(() => retrieve(key))
    189      .then((headers) => {
    190          assert_own_property(headers, 'sec-fetch-site');
    191          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    192        });
    193  }, 'sec-fetch-site - Same-Site -> Same Origin');
    194 
    195  promise_test((t) => {
    196    const key = '{{uuid()}}';
    197 
    198    return induceRequest(
    199        makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams), t
    200      )
    201      .then(() => retrieve(key))
    202      .then((headers) => {
    203          assert_own_property(headers, 'sec-fetch-site');
    204          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    205        });
    206  }, 'sec-fetch-site - Same-Site -> Same-Site');
    207 
    208  promise_test((t) => {
    209    const key = '{{uuid()}}';
    210 
    211    return induceRequest(
    212        makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams), t
    213      )
    214      .then(() => retrieve(key))
    215      .then((headers) => {
    216          assert_own_property(headers, 'sec-fetch-site');
    217          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    218        });
    219  }, 'sec-fetch-site - Same-Site -> Cross-Site');
    220 
    221  promise_test((t) => {
    222    const key = '{{uuid()}}';
    223 
    224    return induceRequest(
    225        makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams), t
    226      )
    227      .then(() => retrieve(key))
    228      .then((headers) => {
    229          assert_own_property(headers, 'sec-fetch-site');
    230          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    231        });
    232  }, 'sec-fetch-site - HTTPS downgrade-upgrade');
    233 
    234  promise_test((t) => {
    235    const key = '{{uuid()}}';
    236 
    237    return induceRequest(
    238        makeRequestURL(key, [], responseParams), t
    239      )
    240      .then(() => retrieve(key))
    241      .then((headers) => {
    242          assert_own_property(headers, 'sec-fetch-mode');
    243          assert_array_equals(headers['sec-fetch-mode'], ['navigate']);
    244        });
    245  }, 'sec-fetch-mode');
    246 
    247  promise_test((t) => {
    248    const key = '{{uuid()}}';
    249 
    250    return induceRequest(
    251        makeRequestURL(key, [], responseParams), t
    252      )
    253      .then(() => retrieve(key))
    254      .then((headers) => {
    255          assert_own_property(headers, 'sec-fetch-dest');
    256          assert_array_equals(headers['sec-fetch-dest'], ['document']);
    257        });
    258  }, 'sec-fetch-dest');
    259 
    260  promise_test((t) => {
    261    const key = '{{uuid()}}';
    262 
    263    return induceRequest(
    264        makeRequestURL(key, [], responseParams), t
    265      )
    266      .then(() => retrieve(key))
    267      .then((headers) => {
    268          assert_not_own_property(headers, 'sec-fetch-user');
    269        });
    270  }, 'sec-fetch-user');
    271 
    272  promise_test((t) => {
    273    const key = '{{uuid()}}';
    274 
    275    return induceRequest(
    276        makeRequestURL(key, ['httpsCrossSite'], responseParams), t
    277      )
    278      .then(() => retrieve(key))
    279      .then((headers) => {
    280          assert_not_own_property(headers, 'sec-fetch-storage-access');
    281        });
    282  }, 'sec-fetch-storage-access - Cross-site');
    283 
    284  promise_test((t) => {
    285    const key = '{{uuid()}}';
    286 
    287    return induceRequest(
    288        makeRequestURL(key, ['httpsSameSite'], responseParams), 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>