tor-browser

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

script-json-module-import-static.https.sub.html (9703B)


      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-json-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-json-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,
     40          ['httpsOrigin'],
     41          {
     42            mime: 'application/json',
     43            body: '{}'
     44          }
     45        )
     46      )
     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(() => {
     55    const key = '{{uuid()}}';
     56 
     57    return induceRequest(
     58        makeRequestURL(
     59          key,
     60          ['httpsCrossSite'],
     61          {
     62            mime: 'application/json',
     63            body: '{}'
     64          }
     65        )
     66      )
     67      .then(() => retrieve(key))
     68      .then((headers) => {
     69          assert_own_property(headers, 'sec-fetch-site');
     70          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
     71        });
     72  }, 'sec-fetch-site - Cross-site');
     73 
     74  promise_test(() => {
     75    const key = '{{uuid()}}';
     76 
     77    return induceRequest(
     78        makeRequestURL(
     79          key,
     80          ['httpsSameSite'],
     81          {
     82            mime: 'application/json',
     83            body: '{}'
     84          }
     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'], ['same-site']);
     91        });
     92  }, 'sec-fetch-site - Same site');
     93 
     94  promise_test(() => {
     95    const key = '{{uuid()}}';
     96 
     97    return induceRequest(
     98        makeRequestURL(
     99          key,
    100          ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'],
    101          {
    102            mime: 'application/json',
    103            body: '{}'
    104          }
    105        )
    106      )
    107      .then(() => retrieve(key))
    108      .then((headers) => {
    109          assert_own_property(headers, 'sec-fetch-site');
    110          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    111        });
    112  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect');
    113 
    114  promise_test(() => {
    115    const key = '{{uuid()}}';
    116 
    117    return induceRequest(
    118        makeRequestURL(
    119          key,
    120          ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'],
    121          {
    122            mime: 'application/json',
    123            body: '{}'
    124          }
    125        )
    126      )
    127      .then(() => retrieve(key))
    128      .then((headers) => {
    129          assert_own_property(headers, 'sec-fetch-site');
    130          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    131        });
    132  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect');
    133 
    134  promise_test(() => {
    135    const key = '{{uuid()}}';
    136 
    137    return induceRequest(
    138        makeRequestURL(
    139          key,
    140          ['httpsCrossSite', 'httpsOrigin'],
    141          {
    142            mime: 'application/json',
    143            body: '{}'
    144          }
    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 -> Same Origin');
    153 
    154  promise_test(() => {
    155    const key = '{{uuid()}}';
    156 
    157    return induceRequest(
    158        makeRequestURL(
    159          key,
    160          ['httpsCrossSite', 'httpsSameSite'],
    161          {
    162            mime: 'application/json',
    163            body: '{}'
    164          }
    165        )
    166      )
    167      .then(() => retrieve(key))
    168      .then((headers) => {
    169          assert_own_property(headers, 'sec-fetch-site');
    170          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    171        });
    172  }, 'sec-fetch-site - Cross-Site -> Same-Site');
    173 
    174  promise_test(() => {
    175    const key = '{{uuid()}}';
    176 
    177    return induceRequest(
    178        makeRequestURL(
    179          key,
    180          ['httpsCrossSite', 'httpsCrossSite'],
    181          {
    182            mime: 'application/json',
    183            body: '{}'
    184          }
    185        )
    186      )
    187      .then(() => retrieve(key))
    188      .then((headers) => {
    189          assert_own_property(headers, 'sec-fetch-site');
    190          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    191        });
    192  }, 'sec-fetch-site - Cross-Site -> Cross-Site');
    193 
    194  promise_test(() => {
    195    const key = '{{uuid()}}';
    196 
    197    return induceRequest(
    198        makeRequestURL(
    199          key,
    200          ['httpsOrigin', 'httpsOrigin'],
    201          {
    202            mime: 'application/json',
    203            body: '{}'
    204          }
    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-origin']);
    211        });
    212  }, 'sec-fetch-site - Same-Origin -> Same Origin');
    213 
    214  promise_test(() => {
    215    const key = '{{uuid()}}';
    216 
    217    return induceRequest(
    218        makeRequestURL(
    219          key,
    220          ['httpsOrigin', 'httpsSameSite'],
    221          {
    222            mime: 'application/json',
    223            body: '{}'
    224          }
    225        )
    226      )
    227      .then(() => retrieve(key))
    228      .then((headers) => {
    229          assert_own_property(headers, 'sec-fetch-site');
    230          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    231        });
    232  }, 'sec-fetch-site - Same-Origin -> Same-Site');
    233 
    234  promise_test(() => {
    235    const key = '{{uuid()}}';
    236 
    237    return induceRequest(
    238        makeRequestURL(
    239          key,
    240          ['httpsOrigin', 'httpsCrossSite'],
    241          {
    242            mime: 'application/json',
    243            body: '{}'
    244          }
    245        )
    246      )
    247      .then(() => retrieve(key))
    248      .then((headers) => {
    249          assert_own_property(headers, 'sec-fetch-site');
    250          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    251        });
    252  }, 'sec-fetch-site - Same-Origin -> Cross-Site');
    253 
    254  promise_test(() => {
    255    const key = '{{uuid()}}';
    256 
    257    return induceRequest(
    258        makeRequestURL(
    259          key,
    260          ['httpsSameSite', 'httpsOrigin'],
    261          {
    262            mime: 'application/json',
    263            body: '{}'
    264          }
    265        )
    266      )
    267      .then(() => retrieve(key))
    268      .then((headers) => {
    269          assert_own_property(headers, 'sec-fetch-site');
    270          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    271        });
    272  }, 'sec-fetch-site - Same-Site -> Same Origin');
    273 
    274  promise_test(() => {
    275    const key = '{{uuid()}}';
    276 
    277    return induceRequest(
    278        makeRequestURL(
    279          key,
    280          ['httpsSameSite', 'httpsSameSite'],
    281          {
    282            mime: 'application/json',
    283            body: '{}'
    284          }
    285        )
    286      )
    287      .then(() => retrieve(key))
    288      .then((headers) => {
    289          assert_own_property(headers, 'sec-fetch-site');
    290          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    291        });
    292  }, 'sec-fetch-site - Same-Site -> Same-Site');
    293 
    294  promise_test(() => {
    295    const key = '{{uuid()}}';
    296 
    297    return induceRequest(
    298        makeRequestURL(
    299          key,
    300          ['httpsSameSite', 'httpsCrossSite'],
    301          {
    302            mime: 'application/json',
    303            body: '{}'
    304          }
    305        )
    306      )
    307      .then(() => retrieve(key))
    308      .then((headers) => {
    309          assert_own_property(headers, 'sec-fetch-site');
    310          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    311        });
    312  }, 'sec-fetch-site - Same-Site -> Cross-Site');
    313 
    314  promise_test(() => {
    315    const key = '{{uuid()}}';
    316 
    317    return induceRequest(
    318        makeRequestURL(
    319          key,
    320          [],
    321          {
    322            mime: 'application/json',
    323            body: '{}'
    324          }
    325        )
    326      )
    327      .then(() => retrieve(key))
    328      .then((headers) => {
    329          assert_own_property(headers, 'sec-fetch-mode');
    330          assert_array_equals(headers['sec-fetch-mode'], ['cors']);
    331        });
    332  }, 'sec-fetch-mode');
    333 
    334  promise_test(() => {
    335    const key = '{{uuid()}}';
    336 
    337    return induceRequest(
    338        makeRequestURL(
    339          key,
    340          [],
    341          {
    342            mime: 'application/json',
    343            body: '{}'
    344          }
    345        )
    346      )
    347      .then(() => retrieve(key))
    348      .then((headers) => {
    349          assert_own_property(headers, 'sec-fetch-dest');
    350          assert_array_equals(headers['sec-fetch-dest'], ['json']);
    351        });
    352  }, 'sec-fetch-dest');
    353 
    354  promise_test(() => {
    355    const key = '{{uuid()}}';
    356 
    357    return induceRequest(
    358        makeRequestURL(
    359          key,
    360          [],
    361          {
    362            mime: 'application/json',
    363            body: '{}'
    364          }
    365        )
    366      )
    367      .then(() => retrieve(key))
    368      .then((headers) => {
    369          assert_not_own_property(headers, 'sec-fetch-user');
    370        });
    371  }, 'sec-fetch-user');
    372  </script>
    373 </html>