tor-browser

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

window-location.https.sub.html (44676B)


      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/window-location.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 navigation via the HTML Location API</title>
     12  <script src="/resources/testharness.js"></script>
     13  <script src="/resources/testharnessreport.js"></script>
     14  <script src="/resources/testdriver.js"></script>
     15  <script src="/resources/testdriver-vendor.js"></script>
     16  <script src="/fetch/metadata/resources/helper.sub.js"></script>
     17  <body>
     18  <script>
     19  'use strict';
     20 
     21  function induceRequest(url, navigate, userActivated) {
     22    const win = window.open();
     23 
     24    return new Promise((resolve) => {
     25        addEventListener('message', function(event) {
     26          if (event.source === win) {
     27            resolve();
     28          }
     29        });
     30 
     31        if (userActivated) {
     32          test_driver.bless('enable user activation', () => {
     33            navigate(win, url);
     34          });
     35        } else {
     36          navigate(win, url);
     37        }
     38      })
     39      .then(() => win.close());
     40  }
     41 
     42  const responseParams = {
     43    mime: 'text/html',
     44    body: `<script>opener.postMessage('done', '*')</${''}script>`
     45  };
     46 
     47  promise_test(() => {
     48    const key = '{{uuid()}}';
     49    const url = makeRequestURL(key, ['httpsOrigin'], responseParams);
     50 
     51    const navigate = (win, path) => {
     52      win.location = path;
     53    };
     54    return induceRequest(url, navigate, false)
     55      .then(() => retrieve(key))
     56      .then((headers) => {
     57          assert_own_property(headers, 'sec-fetch-site');
     58          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     59        });
     60  }, 'sec-fetch-site - Same origin - location');
     61 
     62  promise_test(() => {
     63    const key = '{{uuid()}}';
     64    const url = makeRequestURL(key, ['httpsOrigin'], responseParams);
     65 
     66    const navigate = (win, path) => {
     67      win.location.href = path;
     68    };
     69    return induceRequest(url, navigate, false)
     70      .then(() => retrieve(key))
     71      .then((headers) => {
     72          assert_own_property(headers, 'sec-fetch-site');
     73          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     74        });
     75  }, 'sec-fetch-site - Same origin - location.href');
     76 
     77  promise_test(() => {
     78    const key = '{{uuid()}}';
     79    const url = makeRequestURL(key, ['httpsOrigin'], responseParams);
     80 
     81    const navigate = (win, path) => {
     82      win.location.assign(path);
     83    };
     84    return induceRequest(url, navigate, false)
     85      .then(() => retrieve(key))
     86      .then((headers) => {
     87          assert_own_property(headers, 'sec-fetch-site');
     88          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     89        });
     90  }, 'sec-fetch-site - Same origin - location.assign');
     91 
     92  promise_test(() => {
     93    const key = '{{uuid()}}';
     94    const url = makeRequestURL(key, ['httpsOrigin'], responseParams);
     95 
     96    const navigate = (win, path) => {
     97      win.location.replace(path);
     98    };
     99    return induceRequest(url, navigate, false)
    100      .then(() => retrieve(key))
    101      .then((headers) => {
    102          assert_own_property(headers, 'sec-fetch-site');
    103          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    104        });
    105  }, 'sec-fetch-site - Same origin - location.replace');
    106 
    107  promise_test(() => {
    108    const key = '{{uuid()}}';
    109    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
    110 
    111    const navigate = (win, path) => {
    112      win.location = path;
    113    };
    114    return induceRequest(url, navigate, false)
    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 - location');
    121 
    122  promise_test(() => {
    123    const key = '{{uuid()}}';
    124    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
    125 
    126    const navigate = (win, path) => {
    127      win.location.href = path;
    128    };
    129    return induceRequest(url, navigate, false)
    130      .then(() => retrieve(key))
    131      .then((headers) => {
    132          assert_own_property(headers, 'sec-fetch-site');
    133          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    134        });
    135  }, 'sec-fetch-site - Cross-site - location.href');
    136 
    137  promise_test(() => {
    138    const key = '{{uuid()}}';
    139    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
    140 
    141    const navigate = (win, path) => {
    142      win.location.assign(path);
    143    };
    144    return induceRequest(url, navigate, false)
    145      .then(() => retrieve(key))
    146      .then((headers) => {
    147          assert_own_property(headers, 'sec-fetch-site');
    148          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    149        });
    150  }, 'sec-fetch-site - Cross-site - location.assign');
    151 
    152  promise_test(() => {
    153    const key = '{{uuid()}}';
    154    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
    155 
    156    const navigate = (win, path) => {
    157      win.location.replace(path);
    158    };
    159    return induceRequest(url, navigate, false)
    160      .then(() => retrieve(key))
    161      .then((headers) => {
    162          assert_own_property(headers, 'sec-fetch-site');
    163          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    164        });
    165  }, 'sec-fetch-site - Cross-site - location.replace');
    166 
    167  promise_test(() => {
    168    const key = '{{uuid()}}';
    169    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
    170 
    171    const navigate = (win, path) => {
    172      win.location = path;
    173    };
    174    return induceRequest(url, navigate, false)
    175      .then(() => retrieve(key))
    176      .then((headers) => {
    177          assert_own_property(headers, 'sec-fetch-site');
    178          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    179        });
    180  }, 'sec-fetch-site - Same site - location');
    181 
    182  promise_test(() => {
    183    const key = '{{uuid()}}';
    184    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
    185 
    186    const navigate = (win, path) => {
    187      win.location.href = path;
    188    };
    189    return induceRequest(url, navigate, false)
    190      .then(() => retrieve(key))
    191      .then((headers) => {
    192          assert_own_property(headers, 'sec-fetch-site');
    193          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    194        });
    195  }, 'sec-fetch-site - Same site - location.href');
    196 
    197  promise_test(() => {
    198    const key = '{{uuid()}}';
    199    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
    200 
    201    const navigate = (win, path) => {
    202      win.location.assign(path);
    203    };
    204    return induceRequest(url, navigate, false)
    205      .then(() => retrieve(key))
    206      .then((headers) => {
    207          assert_own_property(headers, 'sec-fetch-site');
    208          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    209        });
    210  }, 'sec-fetch-site - Same site - location.assign');
    211 
    212  promise_test(() => {
    213    const key = '{{uuid()}}';
    214    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
    215 
    216    const navigate = (win, path) => {
    217      win.location.replace(path);
    218    };
    219    return induceRequest(url, navigate, false)
    220      .then(() => retrieve(key))
    221      .then((headers) => {
    222          assert_own_property(headers, 'sec-fetch-site');
    223          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    224        });
    225  }, 'sec-fetch-site - Same site - location.replace');
    226 
    227  promise_test(() => {
    228    const key = '{{uuid()}}';
    229    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams);
    230 
    231    const navigate = (win, path) => {
    232      win.location = path;
    233    };
    234    return induceRequest(url, navigate, false)
    235      .then(() => retrieve(key))
    236      .then((headers) => {
    237          assert_own_property(headers, 'sec-fetch-site');
    238          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    239        });
    240  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location');
    241 
    242  promise_test(() => {
    243    const key = '{{uuid()}}';
    244    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams);
    245 
    246    const navigate = (win, path) => {
    247      win.location.href = path;
    248    };
    249    return induceRequest(url, navigate, false)
    250      .then(() => retrieve(key))
    251      .then((headers) => {
    252          assert_own_property(headers, 'sec-fetch-site');
    253          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    254        });
    255  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.href');
    256 
    257  promise_test(() => {
    258    const key = '{{uuid()}}';
    259    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams);
    260 
    261    const navigate = (win, path) => {
    262      win.location.assign(path);
    263    };
    264    return induceRequest(url, navigate, false)
    265      .then(() => retrieve(key))
    266      .then((headers) => {
    267          assert_own_property(headers, 'sec-fetch-site');
    268          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    269        });
    270  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.assign');
    271 
    272  promise_test(() => {
    273    const key = '{{uuid()}}';
    274    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams);
    275 
    276    const navigate = (win, path) => {
    277      win.location.replace(path);
    278    };
    279    return induceRequest(url, navigate, false)
    280      .then(() => retrieve(key))
    281      .then((headers) => {
    282          assert_own_property(headers, 'sec-fetch-site');
    283          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    284        });
    285  }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.replace');
    286 
    287  promise_test(() => {
    288    const key = '{{uuid()}}';
    289    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams);
    290 
    291    const navigate = (win, path) => {
    292      win.location = path;
    293    };
    294    return induceRequest(url, navigate, false)
    295      .then(() => retrieve(key))
    296      .then((headers) => {
    297          assert_own_property(headers, 'sec-fetch-site');
    298          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    299        });
    300  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location');
    301 
    302  promise_test(() => {
    303    const key = '{{uuid()}}';
    304    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams);
    305 
    306    const navigate = (win, path) => {
    307      win.location.href = path;
    308    };
    309    return induceRequest(url, navigate, false)
    310      .then(() => retrieve(key))
    311      .then((headers) => {
    312          assert_own_property(headers, 'sec-fetch-site');
    313          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    314        });
    315  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location.href');
    316 
    317  promise_test(() => {
    318    const key = '{{uuid()}}';
    319    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams);
    320 
    321    const navigate = (win, path) => {
    322      win.location.assign(path);
    323    };
    324    return induceRequest(url, navigate, false)
    325      .then(() => retrieve(key))
    326      .then((headers) => {
    327          assert_own_property(headers, 'sec-fetch-site');
    328          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    329        });
    330  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location.assign');
    331 
    332  promise_test(() => {
    333    const key = '{{uuid()}}';
    334    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams);
    335 
    336    const navigate = (win, path) => {
    337      win.location.replace(path);
    338    };
    339    return induceRequest(url, navigate, false)
    340      .then(() => retrieve(key))
    341      .then((headers) => {
    342          assert_own_property(headers, 'sec-fetch-site');
    343          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    344        });
    345  }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location.replace');
    346 
    347  promise_test(() => {
    348    const key = '{{uuid()}}';
    349    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams);
    350 
    351    const navigate = (win, path) => {
    352      win.location = path;
    353    };
    354    return induceRequest(url, navigate, false)
    355      .then(() => retrieve(key))
    356      .then((headers) => {
    357          assert_own_property(headers, 'sec-fetch-site');
    358          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    359        });
    360  }, 'sec-fetch-site - Cross-Site -> Same Origin - location');
    361 
    362  promise_test(() => {
    363    const key = '{{uuid()}}';
    364    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams);
    365 
    366    const navigate = (win, path) => {
    367      win.location.href = path;
    368    };
    369    return induceRequest(url, navigate, false)
    370      .then(() => retrieve(key))
    371      .then((headers) => {
    372          assert_own_property(headers, 'sec-fetch-site');
    373          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    374        });
    375  }, 'sec-fetch-site - Cross-Site -> Same Origin - location.href');
    376 
    377  promise_test(() => {
    378    const key = '{{uuid()}}';
    379    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams);
    380 
    381    const navigate = (win, path) => {
    382      win.location.assign(path);
    383    };
    384    return induceRequest(url, navigate, false)
    385      .then(() => retrieve(key))
    386      .then((headers) => {
    387          assert_own_property(headers, 'sec-fetch-site');
    388          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    389        });
    390  }, 'sec-fetch-site - Cross-Site -> Same Origin - location.assign');
    391 
    392  promise_test(() => {
    393    const key = '{{uuid()}}';
    394    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams);
    395 
    396    const navigate = (win, path) => {
    397      win.location.replace(path);
    398    };
    399    return induceRequest(url, navigate, false)
    400      .then(() => retrieve(key))
    401      .then((headers) => {
    402          assert_own_property(headers, 'sec-fetch-site');
    403          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    404        });
    405  }, 'sec-fetch-site - Cross-Site -> Same Origin - location.replace');
    406 
    407  promise_test(() => {
    408    const key = '{{uuid()}}';
    409    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams);
    410 
    411    const navigate = (win, path) => {
    412      win.location = path;
    413    };
    414    return induceRequest(url, navigate, false)
    415      .then(() => retrieve(key))
    416      .then((headers) => {
    417          assert_own_property(headers, 'sec-fetch-site');
    418          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    419        });
    420  }, 'sec-fetch-site - Cross-Site -> Same-Site - location');
    421 
    422  promise_test(() => {
    423    const key = '{{uuid()}}';
    424    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams);
    425 
    426    const navigate = (win, path) => {
    427      win.location.href = path;
    428    };
    429    return induceRequest(url, navigate, false)
    430      .then(() => retrieve(key))
    431      .then((headers) => {
    432          assert_own_property(headers, 'sec-fetch-site');
    433          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    434        });
    435  }, 'sec-fetch-site - Cross-Site -> Same-Site - location.href');
    436 
    437  promise_test(() => {
    438    const key = '{{uuid()}}';
    439    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams);
    440 
    441    const navigate = (win, path) => {
    442      win.location.assign(path);
    443    };
    444    return induceRequest(url, navigate, false)
    445      .then(() => retrieve(key))
    446      .then((headers) => {
    447          assert_own_property(headers, 'sec-fetch-site');
    448          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    449        });
    450  }, 'sec-fetch-site - Cross-Site -> Same-Site - location.assign');
    451 
    452  promise_test(() => {
    453    const key = '{{uuid()}}';
    454    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams);
    455 
    456    const navigate = (win, path) => {
    457      win.location.replace(path);
    458    };
    459    return induceRequest(url, navigate, false)
    460      .then(() => retrieve(key))
    461      .then((headers) => {
    462          assert_own_property(headers, 'sec-fetch-site');
    463          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    464        });
    465  }, 'sec-fetch-site - Cross-Site -> Same-Site - location.replace');
    466 
    467  promise_test(() => {
    468    const key = '{{uuid()}}';
    469    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams);
    470 
    471    const navigate = (win, path) => {
    472      win.location = path;
    473    };
    474    return induceRequest(url, navigate, false)
    475      .then(() => retrieve(key))
    476      .then((headers) => {
    477          assert_own_property(headers, 'sec-fetch-site');
    478          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    479        });
    480  }, 'sec-fetch-site - Cross-Site -> Cross-Site - location');
    481 
    482  promise_test(() => {
    483    const key = '{{uuid()}}';
    484    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams);
    485 
    486    const navigate = (win, path) => {
    487      win.location.href = path;
    488    };
    489    return induceRequest(url, navigate, false)
    490      .then(() => retrieve(key))
    491      .then((headers) => {
    492          assert_own_property(headers, 'sec-fetch-site');
    493          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    494        });
    495  }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.href');
    496 
    497  promise_test(() => {
    498    const key = '{{uuid()}}';
    499    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams);
    500 
    501    const navigate = (win, path) => {
    502      win.location.assign(path);
    503    };
    504    return induceRequest(url, navigate, false)
    505      .then(() => retrieve(key))
    506      .then((headers) => {
    507          assert_own_property(headers, 'sec-fetch-site');
    508          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    509        });
    510  }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.assign');
    511 
    512  promise_test(() => {
    513    const key = '{{uuid()}}';
    514    const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams);
    515 
    516    const navigate = (win, path) => {
    517      win.location.replace(path);
    518    };
    519    return induceRequest(url, navigate, false)
    520      .then(() => retrieve(key))
    521      .then((headers) => {
    522          assert_own_property(headers, 'sec-fetch-site');
    523          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    524        });
    525  }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.replace');
    526 
    527  promise_test(() => {
    528    const key = '{{uuid()}}';
    529    const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams);
    530 
    531    const navigate = (win, path) => {
    532      win.location = path;
    533    };
    534    return induceRequest(url, navigate, false)
    535      .then(() => retrieve(key))
    536      .then((headers) => {
    537          assert_own_property(headers, 'sec-fetch-site');
    538          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    539        });
    540  }, 'sec-fetch-site - Same-Origin -> Same Origin - location');
    541 
    542  promise_test(() => {
    543    const key = '{{uuid()}}';
    544    const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams);
    545 
    546    const navigate = (win, path) => {
    547      win.location.href = path;
    548    };
    549    return induceRequest(url, navigate, false)
    550      .then(() => retrieve(key))
    551      .then((headers) => {
    552          assert_own_property(headers, 'sec-fetch-site');
    553          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    554        });
    555  }, 'sec-fetch-site - Same-Origin -> Same Origin - location.href');
    556 
    557  promise_test(() => {
    558    const key = '{{uuid()}}';
    559    const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams);
    560 
    561    const navigate = (win, path) => {
    562      win.location.assign(path);
    563    };
    564    return induceRequest(url, navigate, false)
    565      .then(() => retrieve(key))
    566      .then((headers) => {
    567          assert_own_property(headers, 'sec-fetch-site');
    568          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    569        });
    570  }, 'sec-fetch-site - Same-Origin -> Same Origin - location.assign');
    571 
    572  promise_test(() => {
    573    const key = '{{uuid()}}';
    574    const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams);
    575 
    576    const navigate = (win, path) => {
    577      win.location.replace(path);
    578    };
    579    return induceRequest(url, navigate, false)
    580      .then(() => retrieve(key))
    581      .then((headers) => {
    582          assert_own_property(headers, 'sec-fetch-site');
    583          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
    584        });
    585  }, 'sec-fetch-site - Same-Origin -> Same Origin - location.replace');
    586 
    587  promise_test(() => {
    588    const key = '{{uuid()}}';
    589    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams);
    590 
    591    const navigate = (win, path) => {
    592      win.location = path;
    593    };
    594    return induceRequest(url, navigate, false)
    595      .then(() => retrieve(key))
    596      .then((headers) => {
    597          assert_own_property(headers, 'sec-fetch-site');
    598          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    599        });
    600  }, 'sec-fetch-site - Same-Origin -> Same-Site - location');
    601 
    602  promise_test(() => {
    603    const key = '{{uuid()}}';
    604    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams);
    605 
    606    const navigate = (win, path) => {
    607      win.location.href = path;
    608    };
    609    return induceRequest(url, navigate, false)
    610      .then(() => retrieve(key))
    611      .then((headers) => {
    612          assert_own_property(headers, 'sec-fetch-site');
    613          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    614        });
    615  }, 'sec-fetch-site - Same-Origin -> Same-Site - location.href');
    616 
    617  promise_test(() => {
    618    const key = '{{uuid()}}';
    619    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams);
    620 
    621    const navigate = (win, path) => {
    622      win.location.assign(path);
    623    };
    624    return induceRequest(url, navigate, false)
    625      .then(() => retrieve(key))
    626      .then((headers) => {
    627          assert_own_property(headers, 'sec-fetch-site');
    628          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    629        });
    630  }, 'sec-fetch-site - Same-Origin -> Same-Site - location.assign');
    631 
    632  promise_test(() => {
    633    const key = '{{uuid()}}';
    634    const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams);
    635 
    636    const navigate = (win, path) => {
    637      win.location.replace(path);
    638    };
    639    return induceRequest(url, navigate, false)
    640      .then(() => retrieve(key))
    641      .then((headers) => {
    642          assert_own_property(headers, 'sec-fetch-site');
    643          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    644        });
    645  }, 'sec-fetch-site - Same-Origin -> Same-Site - location.replace');
    646 
    647  promise_test(() => {
    648    const key = '{{uuid()}}';
    649    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams);
    650 
    651    const navigate = (win, path) => {
    652      win.location = path;
    653    };
    654    return induceRequest(url, navigate, false)
    655      .then(() => retrieve(key))
    656      .then((headers) => {
    657          assert_own_property(headers, 'sec-fetch-site');
    658          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    659        });
    660  }, 'sec-fetch-site - Same-Origin -> Cross-Site - location');
    661 
    662  promise_test(() => {
    663    const key = '{{uuid()}}';
    664    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams);
    665 
    666    const navigate = (win, path) => {
    667      win.location.href = path;
    668    };
    669    return induceRequest(url, navigate, false)
    670      .then(() => retrieve(key))
    671      .then((headers) => {
    672          assert_own_property(headers, 'sec-fetch-site');
    673          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    674        });
    675  }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.href');
    676 
    677  promise_test(() => {
    678    const key = '{{uuid()}}';
    679    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams);
    680 
    681    const navigate = (win, path) => {
    682      win.location.assign(path);
    683    };
    684    return induceRequest(url, navigate, false)
    685      .then(() => retrieve(key))
    686      .then((headers) => {
    687          assert_own_property(headers, 'sec-fetch-site');
    688          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    689        });
    690  }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.assign');
    691 
    692  promise_test(() => {
    693    const key = '{{uuid()}}';
    694    const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams);
    695 
    696    const navigate = (win, path) => {
    697      win.location.replace(path);
    698    };
    699    return induceRequest(url, navigate, false)
    700      .then(() => retrieve(key))
    701      .then((headers) => {
    702          assert_own_property(headers, 'sec-fetch-site');
    703          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    704        });
    705  }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.replace');
    706 
    707  promise_test(() => {
    708    const key = '{{uuid()}}';
    709    const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams);
    710 
    711    const navigate = (win, path) => {
    712      win.location = path;
    713    };
    714    return induceRequest(url, navigate, false)
    715      .then(() => retrieve(key))
    716      .then((headers) => {
    717          assert_own_property(headers, 'sec-fetch-site');
    718          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    719        });
    720  }, 'sec-fetch-site - Same-Site -> Same Origin - location');
    721 
    722  promise_test(() => {
    723    const key = '{{uuid()}}';
    724    const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams);
    725 
    726    const navigate = (win, path) => {
    727      win.location.href = path;
    728    };
    729    return induceRequest(url, navigate, false)
    730      .then(() => retrieve(key))
    731      .then((headers) => {
    732          assert_own_property(headers, 'sec-fetch-site');
    733          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    734        });
    735  }, 'sec-fetch-site - Same-Site -> Same Origin - location.href');
    736 
    737  promise_test(() => {
    738    const key = '{{uuid()}}';
    739    const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams);
    740 
    741    const navigate = (win, path) => {
    742      win.location.assign(path);
    743    };
    744    return induceRequest(url, navigate, false)
    745      .then(() => retrieve(key))
    746      .then((headers) => {
    747          assert_own_property(headers, 'sec-fetch-site');
    748          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    749        });
    750  }, 'sec-fetch-site - Same-Site -> Same Origin - location.assign');
    751 
    752  promise_test(() => {
    753    const key = '{{uuid()}}';
    754    const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams);
    755 
    756    const navigate = (win, path) => {
    757      win.location.replace(path);
    758    };
    759    return induceRequest(url, navigate, false)
    760      .then(() => retrieve(key))
    761      .then((headers) => {
    762          assert_own_property(headers, 'sec-fetch-site');
    763          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    764        });
    765  }, 'sec-fetch-site - Same-Site -> Same Origin - location.replace');
    766 
    767  promise_test(() => {
    768    const key = '{{uuid()}}';
    769    const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams);
    770 
    771    const navigate = (win, path) => {
    772      win.location = path;
    773    };
    774    return induceRequest(url, navigate, false)
    775      .then(() => retrieve(key))
    776      .then((headers) => {
    777          assert_own_property(headers, 'sec-fetch-site');
    778          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    779        });
    780  }, 'sec-fetch-site - Same-Site -> Same-Site - location');
    781 
    782  promise_test(() => {
    783    const key = '{{uuid()}}';
    784    const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams);
    785 
    786    const navigate = (win, path) => {
    787      win.location.href = path;
    788    };
    789    return induceRequest(url, navigate, false)
    790      .then(() => retrieve(key))
    791      .then((headers) => {
    792          assert_own_property(headers, 'sec-fetch-site');
    793          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    794        });
    795  }, 'sec-fetch-site - Same-Site -> Same-Site - location.href');
    796 
    797  promise_test(() => {
    798    const key = '{{uuid()}}';
    799    const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams);
    800 
    801    const navigate = (win, path) => {
    802      win.location.assign(path);
    803    };
    804    return induceRequest(url, navigate, false)
    805      .then(() => retrieve(key))
    806      .then((headers) => {
    807          assert_own_property(headers, 'sec-fetch-site');
    808          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    809        });
    810  }, 'sec-fetch-site - Same-Site -> Same-Site - location.assign');
    811 
    812  promise_test(() => {
    813    const key = '{{uuid()}}';
    814    const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams);
    815 
    816    const navigate = (win, path) => {
    817      win.location.replace(path);
    818    };
    819    return induceRequest(url, navigate, false)
    820      .then(() => retrieve(key))
    821      .then((headers) => {
    822          assert_own_property(headers, 'sec-fetch-site');
    823          assert_array_equals(headers['sec-fetch-site'], ['same-site']);
    824        });
    825  }, 'sec-fetch-site - Same-Site -> Same-Site - location.replace');
    826 
    827  promise_test(() => {
    828    const key = '{{uuid()}}';
    829    const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams);
    830 
    831    const navigate = (win, path) => {
    832      win.location = path;
    833    };
    834    return induceRequest(url, navigate, false)
    835      .then(() => retrieve(key))
    836      .then((headers) => {
    837          assert_own_property(headers, 'sec-fetch-site');
    838          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    839        });
    840  }, 'sec-fetch-site - Same-Site -> Cross-Site - location');
    841 
    842  promise_test(() => {
    843    const key = '{{uuid()}}';
    844    const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams);
    845 
    846    const navigate = (win, path) => {
    847      win.location.href = path;
    848    };
    849    return induceRequest(url, navigate, false)
    850      .then(() => retrieve(key))
    851      .then((headers) => {
    852          assert_own_property(headers, 'sec-fetch-site');
    853          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    854        });
    855  }, 'sec-fetch-site - Same-Site -> Cross-Site - location.href');
    856 
    857  promise_test(() => {
    858    const key = '{{uuid()}}';
    859    const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams);
    860 
    861    const navigate = (win, path) => {
    862      win.location.assign(path);
    863    };
    864    return induceRequest(url, navigate, false)
    865      .then(() => retrieve(key))
    866      .then((headers) => {
    867          assert_own_property(headers, 'sec-fetch-site');
    868          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    869        });
    870  }, 'sec-fetch-site - Same-Site -> Cross-Site - location.assign');
    871 
    872  promise_test(() => {
    873    const key = '{{uuid()}}';
    874    const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams);
    875 
    876    const navigate = (win, path) => {
    877      win.location.replace(path);
    878    };
    879    return induceRequest(url, navigate, false)
    880      .then(() => retrieve(key))
    881      .then((headers) => {
    882          assert_own_property(headers, 'sec-fetch-site');
    883          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    884        });
    885  }, 'sec-fetch-site - Same-Site -> Cross-Site - location.replace');
    886 
    887  promise_test(() => {
    888    const key = '{{uuid()}}';
    889    const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams);
    890 
    891    const navigate = (win, path) => {
    892      win.location = path;
    893    };
    894    return induceRequest(url, navigate, false)
    895      .then(() => retrieve(key))
    896      .then((headers) => {
    897          assert_own_property(headers, 'sec-fetch-site');
    898          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    899        });
    900  }, 'sec-fetch-site - HTTPS downgrade-upgrade - location');
    901 
    902  promise_test(() => {
    903    const key = '{{uuid()}}';
    904    const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams);
    905 
    906    const navigate = (win, path) => {
    907      win.location.href = path;
    908    };
    909    return induceRequest(url, navigate, false)
    910      .then(() => retrieve(key))
    911      .then((headers) => {
    912          assert_own_property(headers, 'sec-fetch-site');
    913          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    914        });
    915  }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.href');
    916 
    917  promise_test(() => {
    918    const key = '{{uuid()}}';
    919    const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams);
    920 
    921    const navigate = (win, path) => {
    922      win.location.assign(path);
    923    };
    924    return induceRequest(url, navigate, false)
    925      .then(() => retrieve(key))
    926      .then((headers) => {
    927          assert_own_property(headers, 'sec-fetch-site');
    928          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    929        });
    930  }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.assign');
    931 
    932  promise_test(() => {
    933    const key = '{{uuid()}}';
    934    const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams);
    935 
    936    const navigate = (win, path) => {
    937      win.location.replace(path);
    938    };
    939    return induceRequest(url, navigate, false)
    940      .then(() => retrieve(key))
    941      .then((headers) => {
    942          assert_own_property(headers, 'sec-fetch-site');
    943          assert_array_equals(headers['sec-fetch-site'], ['cross-site']);
    944        });
    945  }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.replace');
    946 
    947  promise_test(() => {
    948    const key = '{{uuid()}}';
    949    const url = makeRequestURL(key, [], responseParams);
    950 
    951    const navigate = (win, path) => {
    952      win.location = path;
    953    };
    954    return induceRequest(url, navigate, false)
    955      .then(() => retrieve(key))
    956      .then((headers) => {
    957          assert_own_property(headers, 'sec-fetch-mode');
    958          assert_array_equals(headers['sec-fetch-mode'], ['navigate']);
    959        });
    960  }, 'sec-fetch-mode - location');
    961 
    962  promise_test(() => {
    963    const key = '{{uuid()}}';
    964    const url = makeRequestURL(key, [], responseParams);
    965 
    966    const navigate = (win, path) => {
    967      win.location.href = path;
    968    };
    969    return induceRequest(url, navigate, false)
    970      .then(() => retrieve(key))
    971      .then((headers) => {
    972          assert_own_property(headers, 'sec-fetch-mode');
    973          assert_array_equals(headers['sec-fetch-mode'], ['navigate']);
    974        });
    975  }, 'sec-fetch-mode - location.href');
    976 
    977  promise_test(() => {
    978    const key = '{{uuid()}}';
    979    const url = makeRequestURL(key, [], responseParams);
    980 
    981    const navigate = (win, path) => {
    982      win.location.assign(path);
    983    };
    984    return induceRequest(url, navigate, false)
    985      .then(() => retrieve(key))
    986      .then((headers) => {
    987          assert_own_property(headers, 'sec-fetch-mode');
    988          assert_array_equals(headers['sec-fetch-mode'], ['navigate']);
    989        });
    990  }, 'sec-fetch-mode - location.assign');
    991 
    992  promise_test(() => {
    993    const key = '{{uuid()}}';
    994    const url = makeRequestURL(key, [], responseParams);
    995 
    996    const navigate = (win, path) => {
    997      win.location.replace(path);
    998    };
    999    return induceRequest(url, navigate, false)
   1000      .then(() => retrieve(key))
   1001      .then((headers) => {
   1002          assert_own_property(headers, 'sec-fetch-mode');
   1003          assert_array_equals(headers['sec-fetch-mode'], ['navigate']);
   1004        });
   1005  }, 'sec-fetch-mode - location.replace');
   1006 
   1007  promise_test(() => {
   1008    const key = '{{uuid()}}';
   1009    const url = makeRequestURL(key, [], responseParams);
   1010 
   1011    const navigate = (win, path) => {
   1012      win.location = path;
   1013    };
   1014    return induceRequest(url, navigate, false)
   1015      .then(() => retrieve(key))
   1016      .then((headers) => {
   1017          assert_own_property(headers, 'sec-fetch-dest');
   1018          assert_array_equals(headers['sec-fetch-dest'], ['document']);
   1019        });
   1020  }, 'sec-fetch-dest - location');
   1021 
   1022  promise_test(() => {
   1023    const key = '{{uuid()}}';
   1024    const url = makeRequestURL(key, [], responseParams);
   1025 
   1026    const navigate = (win, path) => {
   1027      win.location.href = path;
   1028    };
   1029    return induceRequest(url, navigate, false)
   1030      .then(() => retrieve(key))
   1031      .then((headers) => {
   1032          assert_own_property(headers, 'sec-fetch-dest');
   1033          assert_array_equals(headers['sec-fetch-dest'], ['document']);
   1034        });
   1035  }, 'sec-fetch-dest - location.href');
   1036 
   1037  promise_test(() => {
   1038    const key = '{{uuid()}}';
   1039    const url = makeRequestURL(key, [], responseParams);
   1040 
   1041    const navigate = (win, path) => {
   1042      win.location.assign(path);
   1043    };
   1044    return induceRequest(url, navigate, false)
   1045      .then(() => retrieve(key))
   1046      .then((headers) => {
   1047          assert_own_property(headers, 'sec-fetch-dest');
   1048          assert_array_equals(headers['sec-fetch-dest'], ['document']);
   1049        });
   1050  }, 'sec-fetch-dest - location.assign');
   1051 
   1052  promise_test(() => {
   1053    const key = '{{uuid()}}';
   1054    const url = makeRequestURL(key, [], responseParams);
   1055 
   1056    const navigate = (win, path) => {
   1057      win.location.replace(path);
   1058    };
   1059    return induceRequest(url, navigate, false)
   1060      .then(() => retrieve(key))
   1061      .then((headers) => {
   1062          assert_own_property(headers, 'sec-fetch-dest');
   1063          assert_array_equals(headers['sec-fetch-dest'], ['document']);
   1064        });
   1065  }, 'sec-fetch-dest - location.replace');
   1066 
   1067  promise_test(() => {
   1068    const key = '{{uuid()}}';
   1069    const url = makeRequestURL(key, [], responseParams);
   1070 
   1071    const navigate = (win, path) => {
   1072      win.location = path;
   1073    };
   1074    return induceRequest(url, navigate, false)
   1075      .then(() => retrieve(key))
   1076      .then((headers) => {
   1077          assert_not_own_property(headers, 'sec-fetch-user');
   1078        });
   1079  }, 'sec-fetch-user - location');
   1080 
   1081  promise_test(() => {
   1082    const key = '{{uuid()}}';
   1083    const url = makeRequestURL(key, [], responseParams);
   1084 
   1085    const navigate = (win, path) => {
   1086      win.location.href = path;
   1087    };
   1088    return induceRequest(url, navigate, false)
   1089      .then(() => retrieve(key))
   1090      .then((headers) => {
   1091          assert_not_own_property(headers, 'sec-fetch-user');
   1092        });
   1093  }, 'sec-fetch-user - location.href');
   1094 
   1095  promise_test(() => {
   1096    const key = '{{uuid()}}';
   1097    const url = makeRequestURL(key, [], responseParams);
   1098 
   1099    const navigate = (win, path) => {
   1100      win.location.assign(path);
   1101    };
   1102    return induceRequest(url, navigate, false)
   1103      .then(() => retrieve(key))
   1104      .then((headers) => {
   1105          assert_not_own_property(headers, 'sec-fetch-user');
   1106        });
   1107  }, 'sec-fetch-user - location.assign');
   1108 
   1109  promise_test(() => {
   1110    const key = '{{uuid()}}';
   1111    const url = makeRequestURL(key, [], responseParams);
   1112 
   1113    const navigate = (win, path) => {
   1114      win.location.replace(path);
   1115    };
   1116    return induceRequest(url, navigate, false)
   1117      .then(() => retrieve(key))
   1118      .then((headers) => {
   1119          assert_not_own_property(headers, 'sec-fetch-user');
   1120        });
   1121  }, 'sec-fetch-user - location.replace');
   1122 
   1123  promise_test(() => {
   1124    const key = '{{uuid()}}';
   1125    const url = makeRequestURL(key, [], responseParams);
   1126 
   1127    const navigate = (win, path) => {
   1128      win.location = path;
   1129    };
   1130    return induceRequest(url, navigate, true)
   1131      .then(() => retrieve(key))
   1132      .then((headers) => {
   1133          assert_own_property(headers, 'sec-fetch-user');
   1134          assert_array_equals(headers['sec-fetch-user'], ['?1']);
   1135        });
   1136  }, 'sec-fetch-user - location with user activation');
   1137 
   1138  promise_test(() => {
   1139    const key = '{{uuid()}}';
   1140    const url = makeRequestURL(key, [], responseParams);
   1141 
   1142    const navigate = (win, path) => {
   1143      win.location.href = path;
   1144    };
   1145    return induceRequest(url, navigate, true)
   1146      .then(() => retrieve(key))
   1147      .then((headers) => {
   1148          assert_own_property(headers, 'sec-fetch-user');
   1149          assert_array_equals(headers['sec-fetch-user'], ['?1']);
   1150        });
   1151  }, 'sec-fetch-user - location.href with user activation');
   1152 
   1153  promise_test(() => {
   1154    const key = '{{uuid()}}';
   1155    const url = makeRequestURL(key, [], responseParams);
   1156 
   1157    const navigate = (win, path) => {
   1158      win.location.assign(path);
   1159    };
   1160    return induceRequest(url, navigate, true)
   1161      .then(() => retrieve(key))
   1162      .then((headers) => {
   1163          assert_own_property(headers, 'sec-fetch-user');
   1164          assert_array_equals(headers['sec-fetch-user'], ['?1']);
   1165        });
   1166  }, 'sec-fetch-user - location.assign with user activation');
   1167 
   1168  promise_test(() => {
   1169    const key = '{{uuid()}}';
   1170    const url = makeRequestURL(key, [], responseParams);
   1171 
   1172    const navigate = (win, path) => {
   1173      win.location.replace(path);
   1174    };
   1175    return induceRequest(url, navigate, true)
   1176      .then(() => retrieve(key))
   1177      .then((headers) => {
   1178          assert_own_property(headers, 'sec-fetch-user');
   1179          assert_array_equals(headers['sec-fetch-user'], ['?1']);
   1180        });
   1181  }, 'sec-fetch-user - location.replace with user activation');
   1182 
   1183  promise_test(() => {
   1184    const key = '{{uuid()}}';
   1185    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
   1186 
   1187    const navigate = (win, path) => {
   1188      win.location = path;
   1189    };
   1190    return induceRequest(url, navigate, false)
   1191      .then(() => retrieve(key))
   1192      .then((headers) => {
   1193          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1194        });
   1195  }, 'sec-fetch-storage-access - Cross-site - location');
   1196 
   1197  promise_test(() => {
   1198    const key = '{{uuid()}}';
   1199    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
   1200 
   1201    const navigate = (win, path) => {
   1202      win.location.href = path;
   1203    };
   1204    return induceRequest(url, navigate, false)
   1205      .then(() => retrieve(key))
   1206      .then((headers) => {
   1207          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1208        });
   1209  }, 'sec-fetch-storage-access - Cross-site - location.href');
   1210 
   1211  promise_test(() => {
   1212    const key = '{{uuid()}}';
   1213    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
   1214 
   1215    const navigate = (win, path) => {
   1216      win.location.assign(path);
   1217    };
   1218    return induceRequest(url, navigate, false)
   1219      .then(() => retrieve(key))
   1220      .then((headers) => {
   1221          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1222        });
   1223  }, 'sec-fetch-storage-access - Cross-site - location.assign');
   1224 
   1225  promise_test(() => {
   1226    const key = '{{uuid()}}';
   1227    const url = makeRequestURL(key, ['httpsCrossSite'], responseParams);
   1228 
   1229    const navigate = (win, path) => {
   1230      win.location.replace(path);
   1231    };
   1232    return induceRequest(url, navigate, false)
   1233      .then(() => retrieve(key))
   1234      .then((headers) => {
   1235          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1236        });
   1237  }, 'sec-fetch-storage-access - Cross-site - location.replace');
   1238 
   1239  promise_test(() => {
   1240    const key = '{{uuid()}}';
   1241    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
   1242 
   1243    const navigate = (win, path) => {
   1244      win.location = path;
   1245    };
   1246    return induceRequest(url, navigate, false)
   1247      .then(() => retrieve(key))
   1248      .then((headers) => {
   1249          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1250        });
   1251  }, 'sec-fetch-storage-access - Same site - location');
   1252 
   1253  promise_test(() => {
   1254    const key = '{{uuid()}}';
   1255    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
   1256 
   1257    const navigate = (win, path) => {
   1258      win.location.href = path;
   1259    };
   1260    return induceRequest(url, navigate, false)
   1261      .then(() => retrieve(key))
   1262      .then((headers) => {
   1263          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1264        });
   1265  }, 'sec-fetch-storage-access - Same site - location.href');
   1266 
   1267  promise_test(() => {
   1268    const key = '{{uuid()}}';
   1269    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
   1270 
   1271    const navigate = (win, path) => {
   1272      win.location.assign(path);
   1273    };
   1274    return induceRequest(url, navigate, false)
   1275      .then(() => retrieve(key))
   1276      .then((headers) => {
   1277          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1278        });
   1279  }, 'sec-fetch-storage-access - Same site - location.assign');
   1280 
   1281  promise_test(() => {
   1282    const key = '{{uuid()}}';
   1283    const url = makeRequestURL(key, ['httpsSameSite'], responseParams);
   1284 
   1285    const navigate = (win, path) => {
   1286      win.location.replace(path);
   1287    };
   1288    return induceRequest(url, navigate, false)
   1289      .then(() => retrieve(key))
   1290      .then((headers) => {
   1291          assert_not_own_property(headers, 'sec-fetch-storage-access');
   1292        });
   1293  }, 'sec-fetch-storage-access - Same site - location.replace');
   1294  </script>
   1295  </body>
   1296 </html>