tor-browser

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

header-link.https.sub.html (17777B)


      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-link.sub.html
      7 -->
      8 <html lang="en">
      9  <meta charset="utf-8">
     10  <title>HTTP headers on request for HTTP "Link" header</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, rel, test) {
     19    const iframe = document.createElement('iframe');
     20 
     21    iframe.setAttribute(
     22      'src',
     23      '/fetch/metadata/resources/header-link.py' +
     24        `?location=${encodeURIComponent(url)}&rel=${rel}`
     25    );
     26 
     27    document.body.appendChild(iframe);
     28    test.add_cleanup(() => iframe.remove());
     29 
     30    return new Promise((resolve) => {
     31        iframe.onload = iframe.onerror = resolve;
     32      });
     33  }
     34 
     35  promise_test((t) => {
     36    const key = '{{uuid()}}';
     37 
     38    return induceRequest(
     39        makeRequestURL(key, ['httpsOrigin'], {mime: 'text/html'}),
     40        'icon',
     41        t
     42      )
     43      .then(() => retrieve(key))
     44      .then((headers) => {
     45          assert_own_property(headers, 'sec-fetch-site');
     46          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     47        });
     48  }, 'sec-fetch-site rel=icon - Same origin');
     49 
     50  promise_test((t) => {
     51    const key = '{{uuid()}}';
     52 
     53    return induceRequest(
     54        makeRequestURL(key, ['httpsOrigin'], {mime: 'text/html'}),
     55        'stylesheet',
     56        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'], ['same-origin']);
     62        });
     63  }, 'sec-fetch-site rel=stylesheet - Same origin');
     64 
     65  promise_test((t) => {
     66    const key = '{{uuid()}}';
     67 
     68    return induceRequest(
     69        makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}),
     70        'icon',
     71        t
     72      )
     73      .then(() => retrieve(key))
     74      .then((headers) => {
     75          assert_own_property(headers, 'sec-fetch-site');
     76          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
     77        });
     78  }, 'sec-fetch-site rel=icon - Cross-site');
     79 
     80  promise_test((t) => {
     81    const key = '{{uuid()}}';
     82 
     83    return induceRequest(
     84        makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}),
     85        'stylesheet',
     86        t
     87      )
     88      .then(() => retrieve(key))
     89      .then((headers) => {
     90          assert_own_property(headers, 'sec-fetch-site');
     91          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
     92        });
     93  }, 'sec-fetch-site rel=stylesheet - Cross-site');
     94 
     95  promise_test((t) => {
     96    const key = '{{uuid()}}';
     97 
     98    return induceRequest(
     99        makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}),
    100        'icon',
    101        t
    102      )
    103      .then(() => retrieve(key))
    104      .then((headers) => {
    105          assert_own_property(headers, 'sec-fetch-site');
    106          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    107        });
    108  }, 'sec-fetch-site rel=icon - Same site');
    109 
    110  promise_test((t) => {
    111    const key = '{{uuid()}}';
    112 
    113    return induceRequest(
    114        makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}),
    115        'stylesheet',
    116        t
    117      )
    118      .then(() => retrieve(key))
    119      .then((headers) => {
    120          assert_own_property(headers, 'sec-fetch-site');
    121          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    122        });
    123  }, 'sec-fetch-site rel=stylesheet - Same site');
    124 
    125  promise_test((t) => {
    126    const key = '{{uuid()}}';
    127 
    128    return induceRequest(
    129        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], {mime: 'text/html'}),
    130        'icon',
    131        t
    132      )
    133      .then(() => retrieve(key))
    134      .then((headers) => {
    135          assert_own_property(headers, 'sec-fetch-site');
    136          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    137        });
    138  }, 'sec-fetch-site rel=icon - Same-Origin -> Cross-Site -> Same-Origin redirect');
    139 
    140  promise_test((t) => {
    141    const key = '{{uuid()}}';
    142 
    143    return induceRequest(
    144        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], {mime: 'text/html'}),
    145        'stylesheet',
    146        t
    147      )
    148      .then(() => retrieve(key))
    149      .then((headers) => {
    150          assert_own_property(headers, 'sec-fetch-site');
    151          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    152        });
    153  }, 'sec-fetch-site rel=stylesheet - Same-Origin -> Cross-Site -> Same-Origin redirect');
    154 
    155  promise_test((t) => {
    156    const key = '{{uuid()}}';
    157 
    158    return induceRequest(
    159        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], {mime: 'text/html'}),
    160        'icon',
    161        t
    162      )
    163      .then(() => retrieve(key))
    164      .then((headers) => {
    165          assert_own_property(headers, 'sec-fetch-site');
    166          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    167        });
    168  }, 'sec-fetch-site rel=icon - Same-Origin -> Same-Site -> Same-Origin redirect');
    169 
    170  promise_test((t) => {
    171    const key = '{{uuid()}}';
    172 
    173    return induceRequest(
    174        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], {mime: 'text/html'}),
    175        'stylesheet',
    176        t
    177      )
    178      .then(() => retrieve(key))
    179      .then((headers) => {
    180          assert_own_property(headers, 'sec-fetch-site');
    181          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    182        });
    183  }, 'sec-fetch-site rel=stylesheet - Same-Origin -> Same-Site -> Same-Origin redirect');
    184 
    185  promise_test((t) => {
    186    const key = '{{uuid()}}';
    187 
    188    return induceRequest(
    189        makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], {mime: 'text/html'}),
    190        'icon',
    191        t
    192      )
    193      .then(() => retrieve(key))
    194      .then((headers) => {
    195          assert_own_property(headers, 'sec-fetch-site');
    196          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    197        });
    198  }, 'sec-fetch-site rel=icon - Cross-Site -> Same Origin');
    199 
    200  promise_test((t) => {
    201    const key = '{{uuid()}}';
    202 
    203    return induceRequest(
    204        makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], {mime: 'text/html'}),
    205        'stylesheet',
    206        t
    207      )
    208      .then(() => retrieve(key))
    209      .then((headers) => {
    210          assert_own_property(headers, 'sec-fetch-site');
    211          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    212        });
    213  }, 'sec-fetch-site rel=stylesheet - Cross-Site -> Same Origin');
    214 
    215  promise_test((t) => {
    216    const key = '{{uuid()}}';
    217 
    218    return induceRequest(
    219        makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], {mime: 'text/html'}),
    220        'icon',
    221        t
    222      )
    223      .then(() => retrieve(key))
    224      .then((headers) => {
    225          assert_own_property(headers, 'sec-fetch-site');
    226          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    227        });
    228  }, 'sec-fetch-site rel=icon - Cross-Site -> Same-Site');
    229 
    230  promise_test((t) => {
    231    const key = '{{uuid()}}';
    232 
    233    return induceRequest(
    234        makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], {mime: 'text/html'}),
    235        'stylesheet',
    236        t
    237      )
    238      .then(() => retrieve(key))
    239      .then((headers) => {
    240          assert_own_property(headers, 'sec-fetch-site');
    241          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    242        });
    243  }, 'sec-fetch-site rel=stylesheet - Cross-Site -> Same-Site');
    244 
    245  promise_test((t) => {
    246    const key = '{{uuid()}}';
    247 
    248    return induceRequest(
    249        makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], {mime: 'text/html'}),
    250        'icon',
    251        t
    252      )
    253      .then(() => retrieve(key))
    254      .then((headers) => {
    255          assert_own_property(headers, 'sec-fetch-site');
    256          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    257        });
    258  }, 'sec-fetch-site rel=icon - Cross-Site -> Cross-Site');
    259 
    260  promise_test((t) => {
    261    const key = '{{uuid()}}';
    262 
    263    return induceRequest(
    264        makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], {mime: 'text/html'}),
    265        'stylesheet',
    266        t
    267      )
    268      .then(() => retrieve(key))
    269      .then((headers) => {
    270          assert_own_property(headers, 'sec-fetch-site');
    271          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    272        });
    273  }, 'sec-fetch-site rel=stylesheet - Cross-Site -> Cross-Site');
    274 
    275  promise_test((t) => {
    276    const key = '{{uuid()}}';
    277 
    278    return induceRequest(
    279        makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], {mime: 'text/html'}),
    280        'icon',
    281        t
    282      )
    283      .then(() => retrieve(key))
    284      .then((headers) => {
    285          assert_own_property(headers, 'sec-fetch-site');
    286          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    287        });
    288  }, 'sec-fetch-site rel=icon - Same-Origin -> Same Origin');
    289 
    290  promise_test((t) => {
    291    const key = '{{uuid()}}';
    292 
    293    return induceRequest(
    294        makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], {mime: 'text/html'}),
    295        'stylesheet',
    296        t
    297      )
    298      .then(() => retrieve(key))
    299      .then((headers) => {
    300          assert_own_property(headers, 'sec-fetch-site');
    301          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    302        });
    303  }, 'sec-fetch-site rel=stylesheet - Same-Origin -> Same Origin');
    304 
    305  promise_test((t) => {
    306    const key = '{{uuid()}}';
    307 
    308    return induceRequest(
    309        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], {mime: 'text/html'}),
    310        'icon',
    311        t
    312      )
    313      .then(() => retrieve(key))
    314      .then((headers) => {
    315          assert_own_property(headers, 'sec-fetch-site');
    316          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    317        });
    318  }, 'sec-fetch-site rel=icon - Same-Origin -> Same-Site');
    319 
    320  promise_test((t) => {
    321    const key = '{{uuid()}}';
    322 
    323    return induceRequest(
    324        makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], {mime: 'text/html'}),
    325        'stylesheet',
    326        t
    327      )
    328      .then(() => retrieve(key))
    329      .then((headers) => {
    330          assert_own_property(headers, 'sec-fetch-site');
    331          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    332        });
    333  }, 'sec-fetch-site rel=stylesheet - Same-Origin -> Same-Site');
    334 
    335  promise_test((t) => {
    336    const key = '{{uuid()}}';
    337 
    338    return induceRequest(
    339        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], {mime: 'text/html'}),
    340        'icon',
    341        t
    342      )
    343      .then(() => retrieve(key))
    344      .then((headers) => {
    345          assert_own_property(headers, 'sec-fetch-site');
    346          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    347        });
    348  }, 'sec-fetch-site rel=icon - Same-Origin -> Cross-Site');
    349 
    350  promise_test((t) => {
    351    const key = '{{uuid()}}';
    352 
    353    return induceRequest(
    354        makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], {mime: 'text/html'}),
    355        'stylesheet',
    356        t
    357      )
    358      .then(() => retrieve(key))
    359      .then((headers) => {
    360          assert_own_property(headers, 'sec-fetch-site');
    361          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    362        });
    363  }, 'sec-fetch-site rel=stylesheet - Same-Origin -> Cross-Site');
    364 
    365  promise_test((t) => {
    366    const key = '{{uuid()}}';
    367 
    368    return induceRequest(
    369        makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], {mime: 'text/html'}),
    370        'icon',
    371        t
    372      )
    373      .then(() => retrieve(key))
    374      .then((headers) => {
    375          assert_own_property(headers, 'sec-fetch-site');
    376          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    377        });
    378  }, 'sec-fetch-site rel=icon - Same-Site -> Same Origin');
    379 
    380  promise_test((t) => {
    381    const key = '{{uuid()}}';
    382 
    383    return induceRequest(
    384        makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], {mime: 'text/html'}),
    385        'stylesheet',
    386        t
    387      )
    388      .then(() => retrieve(key))
    389      .then((headers) => {
    390          assert_own_property(headers, 'sec-fetch-site');
    391          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    392        });
    393  }, 'sec-fetch-site rel=stylesheet - Same-Site -> Same Origin');
    394 
    395  promise_test((t) => {
    396    const key = '{{uuid()}}';
    397 
    398    return induceRequest(
    399        makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], {mime: 'text/html'}),
    400        'icon',
    401        t
    402      )
    403      .then(() => retrieve(key))
    404      .then((headers) => {
    405          assert_own_property(headers, 'sec-fetch-site');
    406          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    407        });
    408  }, 'sec-fetch-site rel=icon - Same-Site -> Same-Site');
    409 
    410  promise_test((t) => {
    411    const key = '{{uuid()}}';
    412 
    413    return induceRequest(
    414        makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], {mime: 'text/html'}),
    415        'stylesheet',
    416        t
    417      )
    418      .then(() => retrieve(key))
    419      .then((headers) => {
    420          assert_own_property(headers, 'sec-fetch-site');
    421          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    422        });
    423  }, 'sec-fetch-site rel=stylesheet - Same-Site -> Same-Site');
    424 
    425  promise_test((t) => {
    426    const key = '{{uuid()}}';
    427 
    428    return induceRequest(
    429        makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], {mime: 'text/html'}),
    430        'icon',
    431        t
    432      )
    433      .then(() => retrieve(key))
    434      .then((headers) => {
    435          assert_own_property(headers, 'sec-fetch-site');
    436          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    437        });
    438  }, 'sec-fetch-site rel=icon - Same-Site -> Cross-Site');
    439 
    440  promise_test((t) => {
    441    const key = '{{uuid()}}';
    442 
    443    return induceRequest(
    444        makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], {mime: 'text/html'}),
    445        'stylesheet',
    446        t
    447      )
    448      .then(() => retrieve(key))
    449      .then((headers) => {
    450          assert_own_property(headers, 'sec-fetch-site');
    451          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    452        });
    453  }, 'sec-fetch-site rel=stylesheet - Same-Site -> Cross-Site');
    454 
    455  promise_test((t) => {
    456    const key = '{{uuid()}}';
    457 
    458    return induceRequest(
    459        makeRequestURL(key, [], {mime: 'text/html'}),
    460        'icon',
    461        t
    462      )
    463      .then(() => retrieve(key))
    464      .then((headers) => {
    465          assert_own_property(headers, 'sec-fetch-mode');
    466          assert_array_equals(headers['sec-fetch-mode'], ['no-cors']);
    467        });
    468  }, 'sec-fetch-mode rel=icon');
    469 
    470  promise_test((t) => {
    471    const key = '{{uuid()}}';
    472 
    473    return induceRequest(
    474        makeRequestURL(key, [], {mime: 'text/html'}),
    475        'stylesheet',
    476        t
    477      )
    478      .then(() => retrieve(key))
    479      .then((headers) => {
    480          assert_own_property(headers, 'sec-fetch-mode');
    481          assert_array_equals(headers['sec-fetch-mode'], ['no-cors']);
    482        });
    483  }, 'sec-fetch-mode rel=stylesheet');
    484 
    485  promise_test((t) => {
    486    const key = '{{uuid()}}';
    487 
    488    return induceRequest(
    489        makeRequestURL(key, [], {mime: 'text/html'}),
    490        'icon',
    491        t
    492      )
    493      .then(() => retrieve(key))
    494      .then((headers) => {
    495          assert_own_property(headers, 'sec-fetch-dest');
    496          assert_array_equals(headers['sec-fetch-dest'], ['empty']);
    497        });
    498  }, 'sec-fetch-dest rel=icon');
    499 
    500  promise_test((t) => {
    501    const key = '{{uuid()}}';
    502 
    503    return induceRequest(
    504        makeRequestURL(key, [], {mime: 'text/html'}),
    505        'icon',
    506        t
    507      )
    508      .then(() => retrieve(key))
    509      .then((headers) => {
    510          assert_not_own_property(headers, 'sec-fetch-user');
    511        });
    512  }, 'sec-fetch-user rel=icon');
    513 
    514  promise_test((t) => {
    515    const key = '{{uuid()}}';
    516 
    517    return induceRequest(
    518        makeRequestURL(key, [], {mime: 'text/html'}),
    519        'stylesheet',
    520        t
    521      )
    522      .then(() => retrieve(key))
    523      .then((headers) => {
    524          assert_not_own_property(headers, 'sec-fetch-user');
    525        });
    526  }, 'sec-fetch-user rel=stylesheet');
    527 
    528  promise_test((t) => {
    529    const key = '{{uuid()}}';
    530 
    531    return induceRequest(
    532        makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}),
    533        'icon',
    534        t
    535      )
    536      .then(() => retrieve(key))
    537      .then((headers) => {
    538          assert_own_property(headers, 'sec-fetch-storage-access');
    539          assert_array_equals(headers['sec-fetch-storage-access'], ['none']);
    540        });
    541  }, 'sec-fetch-storage-access rel=icon - Cross-site');
    542 
    543  promise_test((t) => {
    544    const key = '{{uuid()}}';
    545 
    546    return induceRequest(
    547        makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}),
    548        'stylesheet',
    549        t
    550      )
    551      .then(() => retrieve(key))
    552      .then((headers) => {
    553          assert_own_property(headers, 'sec-fetch-storage-access');
    554          assert_array_equals(headers['sec-fetch-storage-access'], ['none']);
    555        });
    556  }, 'sec-fetch-storage-access rel=stylesheet - Cross-site');
    557 
    558  promise_test((t) => {
    559    const key = '{{uuid()}}';
    560 
    561    return induceRequest(
    562        makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}),
    563        'icon',
    564        t
    565      )
    566      .then(() => retrieve(key))
    567      .then((headers) => {
    568          assert_not_own_property(headers, 'sec-fetch-storage-access');
    569        });
    570  }, 'sec-fetch-storage-access rel=icon - Same site');
    571 
    572  promise_test((t) => {
    573    const key = '{{uuid()}}';
    574 
    575    return induceRequest(
    576        makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}),
    577        'stylesheet',
    578        t
    579      )
    580      .then(() => retrieve(key))
    581      .then((headers) => {
    582          assert_not_own_property(headers, 'sec-fetch-storage-access');
    583        });
    584  }, 'sec-fetch-storage-access rel=stylesheet - Same site');
    585  </script>
    586  </body>
    587 </html>