tor-browser

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

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


      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-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-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, ['httpsOrigin'], { mime: 'application/javascript' }
     40        )
     41      )
     42      .then(() => retrieve(key))
     43      .then((headers) => {
     44          assert_own_property(headers, 'sec-fetch-site');
     45          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     46        });
     47  }, 'sec-fetch-site - Same origin');
     48 
     49  promise_test(() => {
     50    const key = '{{uuid()}}';
     51 
     52    return induceRequest(
     53        makeRequestURL(
     54          key, ['httpsCrossSite'], { mime: 'application/javascript' }
     55        )
     56      )
     57      .then(() => retrieve(key))
     58      .then((headers) => {
     59          assert_own_property(headers, 'sec-fetch-site');
     60          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
     61        });
     62  }, 'sec-fetch-site - Cross-site');
     63 
     64  promise_test(() => {
     65    const key = '{{uuid()}}';
     66 
     67    return induceRequest(
     68        makeRequestURL(
     69          key, ['httpsSameSite'], { mime: 'application/javascript' }
     70        )
     71      )
     72      .then(() => retrieve(key))
     73      .then((headers) => {
     74          assert_own_property(headers, 'sec-fetch-site');
     75          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
     76        });
     77  }, 'sec-fetch-site - Same site');
     78 
     79  promise_test(() => {
     80    const key = '{{uuid()}}';
     81 
     82    return induceRequest(
     83        makeRequestURL(
     84          key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], { mime: 'application/javascript' }
     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'], ['cross-site']);
     91        });
     92  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect');
     93 
     94  promise_test(() => {
     95    const key = '{{uuid()}}';
     96 
     97    return induceRequest(
     98        makeRequestURL(
     99          key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], { mime: 'application/javascript' }
    100        )
    101      )
    102      .then(() => retrieve(key))
    103      .then((headers) => {
    104          assert_own_property(headers, 'sec-fetch-site');
    105          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    106        });
    107  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect');
    108 
    109  promise_test(() => {
    110    const key = '{{uuid()}}';
    111 
    112    return induceRequest(
    113        makeRequestURL(
    114          key, ['httpsCrossSite', 'httpsOrigin'], { mime: 'application/javascript' }
    115        )
    116      )
    117      .then(() => retrieve(key))
    118      .then((headers) => {
    119          assert_own_property(headers, 'sec-fetch-site');
    120          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    121        });
    122  }, 'sec-fetch-site - Cross-Site -> Same Origin');
    123 
    124  promise_test(() => {
    125    const key = '{{uuid()}}';
    126 
    127    return induceRequest(
    128        makeRequestURL(
    129          key, ['httpsCrossSite', 'httpsSameSite'], { mime: 'application/javascript' }
    130        )
    131      )
    132      .then(() => retrieve(key))
    133      .then((headers) => {
    134          assert_own_property(headers, 'sec-fetch-site');
    135          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    136        });
    137  }, 'sec-fetch-site - Cross-Site -> Same-Site');
    138 
    139  promise_test(() => {
    140    const key = '{{uuid()}}';
    141 
    142    return induceRequest(
    143        makeRequestURL(
    144          key, ['httpsCrossSite', 'httpsCrossSite'], { mime: 'application/javascript' }
    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 -> Cross-Site');
    153 
    154  promise_test(() => {
    155    const key = '{{uuid()}}';
    156 
    157    return induceRequest(
    158        makeRequestURL(
    159          key, ['httpsOrigin', 'httpsOrigin'], { mime: 'application/javascript' }
    160        )
    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-origin']);
    166        });
    167  }, 'sec-fetch-site - Same-Origin -> Same Origin');
    168 
    169  promise_test(() => {
    170    const key = '{{uuid()}}';
    171 
    172    return induceRequest(
    173        makeRequestURL(
    174          key, ['httpsOrigin', 'httpsSameSite'], { mime: 'application/javascript' }
    175        )
    176      )
    177      .then(() => retrieve(key))
    178      .then((headers) => {
    179          assert_own_property(headers, 'sec-fetch-site');
    180          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    181        });
    182  }, 'sec-fetch-site - Same-Origin -> Same-Site');
    183 
    184  promise_test(() => {
    185    const key = '{{uuid()}}';
    186 
    187    return induceRequest(
    188        makeRequestURL(
    189          key, ['httpsOrigin', 'httpsCrossSite'], { mime: 'application/javascript' }
    190        )
    191      )
    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-Origin -> Cross-Site');
    198 
    199  promise_test(() => {
    200    const key = '{{uuid()}}';
    201 
    202    return induceRequest(
    203        makeRequestURL(
    204          key, ['httpsSameSite', 'httpsOrigin'], { mime: 'application/javascript' }
    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-site']);
    211        });
    212  }, 'sec-fetch-site - Same-Site -> Same Origin');
    213 
    214  promise_test(() => {
    215    const key = '{{uuid()}}';
    216 
    217    return induceRequest(
    218        makeRequestURL(
    219          key, ['httpsSameSite', 'httpsSameSite'], { mime: 'application/javascript' }
    220        )
    221      )
    222      .then(() => retrieve(key))
    223      .then((headers) => {
    224          assert_own_property(headers, 'sec-fetch-site');
    225          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    226        });
    227  }, 'sec-fetch-site - Same-Site -> Same-Site');
    228 
    229  promise_test(() => {
    230    const key = '{{uuid()}}';
    231 
    232    return induceRequest(
    233        makeRequestURL(
    234          key, ['httpsSameSite', 'httpsCrossSite'], { mime: 'application/javascript' }
    235        )
    236      )
    237      .then(() => retrieve(key))
    238      .then((headers) => {
    239          assert_own_property(headers, 'sec-fetch-site');
    240          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    241        });
    242  }, 'sec-fetch-site - Same-Site -> Cross-Site');
    243 
    244  promise_test(() => {
    245    const key = '{{uuid()}}';
    246 
    247    return induceRequest(
    248        makeRequestURL(
    249          key, [], { mime: 'application/javascript' }
    250        )
    251      )
    252      .then(() => retrieve(key))
    253      .then((headers) => {
    254          assert_own_property(headers, 'sec-fetch-mode');
    255          assert_array_equals(headers['sec-fetch-mode'], ['cors']);
    256        });
    257  }, 'sec-fetch-mode');
    258 
    259  promise_test(() => {
    260    const key = '{{uuid()}}';
    261 
    262    return induceRequest(
    263        makeRequestURL(
    264          key, [], { mime: 'application/javascript' }
    265        )
    266      )
    267      .then(() => retrieve(key))
    268      .then((headers) => {
    269          assert_own_property(headers, 'sec-fetch-dest');
    270          assert_array_equals(headers['sec-fetch-dest'], ['script']);
    271        });
    272  }, 'sec-fetch-dest');
    273 
    274  promise_test(() => {
    275    const key = '{{uuid()}}';
    276 
    277    return induceRequest(
    278        makeRequestURL(
    279          key, [], { mime: 'application/javascript' }
    280        )
    281      )
    282      .then(() => retrieve(key))
    283      .then((headers) => {
    284          assert_not_own_property(headers, 'sec-fetch-user');
    285        });
    286  }, 'sec-fetch-user');
    287 
    288  promise_test(() => {
    289    const key = '{{uuid()}}';
    290 
    291    return induceRequest(
    292        makeRequestURL(
    293          key, ['httpsCrossSite'], { mime: 'application/javascript' }
    294        )
    295      )
    296      .then(() => retrieve(key))
    297      .then((headers) => {
    298          assert_not_own_property(headers, 'sec-fetch-storage-access');
    299        });
    300  }, 'sec-fetch-storage-access - Cross-site');
    301 
    302  promise_test(() => {
    303    const key = '{{uuid()}}';
    304 
    305    return induceRequest(
    306        makeRequestURL(
    307          key, ['httpsSameSite'], { mime: 'application/javascript' }
    308        )
    309      )
    310      .then(() => retrieve(key))
    311      .then((headers) => {
    312          assert_not_own_property(headers, 'sec-fetch-storage-access');
    313        });
    314  }, 'sec-fetch-storage-access - Same site');
    315  </script>
    316 </html>