tor-browser

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

serviceworker.https.sub.html (5533B)


      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/serviceworker.https.sub.html
      7 -->
      8 <!DOCTYPE html>
      9 <html lang="en">
     10  <meta charset="utf-8">
     11  <title>HTTP headers on request for Service Workers</title>
     12  <script src="/resources/testharness.js"></script>
     13  <script src="/resources/testharnessreport.js"></script>
     14  <script src="/fetch/metadata/resources/helper.sub.js"></script>
     15  <body>
     16  <script>
     17  'use strict';
     18 
     19  function induceRequest(t, url, options, event, clear) {
     20    // Register a service worker and check the request header.
     21    return navigator.serviceWorker.register(url, options)
     22      .then((registration) => {
     23        t.add_cleanup(() => registration.unregister());
     24        if (event === 'register') {
     25          return;
     26        }
     27        return clear().then(() => registration.update());
     28      });
     29  }
     30 
     31  promise_test((t) => {
     32    const key = '{{uuid()}}';
     33    const url = makeRequestURL(
     34      key, ['httpsOrigin'], { mime: 'application/javascript' }
     35    );
     36 
     37    return induceRequest(t, url, {}, 'register')
     38      .then(() => retrieve(key))
     39      .then((headers) => {
     40          assert_own_property(headers, 'sec-fetch-site');
     41          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     42        });
     43  }, 'sec-fetch-site - Same origin, no options - registration');
     44 
     45  promise_test((t) => {
     46    const key = '{{uuid()}}';
     47    const url = makeRequestURL(
     48      key, ['httpsOrigin'], { mime: 'application/javascript' }
     49    );
     50 
     51    return induceRequest(t, url, {}, 'update', () => retrieve(key))
     52      .then(() => retrieve(key))
     53      .then((headers) => {
     54          assert_own_property(headers, 'sec-fetch-site');
     55          assert_array_equals(headers['sec-fetch-site'], ['same-origin']);
     56        });
     57  }, 'sec-fetch-site - Same origin, no options - updating');
     58 
     59  promise_test((t) => {
     60    const key = '{{uuid()}}';
     61    const url = makeRequestURL(
     62      key, [], { mime: 'application/javascript' }
     63    );
     64 
     65    return induceRequest(t, url, {"type": "classic"}, 'register')
     66      .then(() => retrieve(key))
     67      .then((headers) => {
     68          assert_own_property(headers, 'sec-fetch-mode');
     69          assert_array_equals(headers['sec-fetch-mode'], ['same-origin']);
     70        });
     71  }, 'sec-fetch-mode - options: type=classic - registration');
     72 
     73  promise_test((t) => {
     74    const key = '{{uuid()}}';
     75    const url = makeRequestURL(
     76      key, [], { mime: 'application/javascript' }
     77    );
     78 
     79    return induceRequest(t, url, {"type": "classic"}, 'update', () => retrieve(key))
     80      .then(() => retrieve(key))
     81      .then((headers) => {
     82          assert_own_property(headers, 'sec-fetch-mode');
     83          assert_array_equals(headers['sec-fetch-mode'], ['same-origin']);
     84        });
     85  }, 'sec-fetch-mode - options: type=classic - updating');
     86 
     87  promise_test((t) => {
     88    const key = '{{uuid()}}';
     89    const url = makeRequestURL(
     90      key, [], { mime: 'application/javascript' }
     91    );
     92 
     93    return induceRequest(t, url, {}, 'register')
     94      .then(() => retrieve(key))
     95      .then((headers) => {
     96          assert_own_property(headers, 'sec-fetch-mode');
     97          assert_array_equals(headers['sec-fetch-mode'], ['same-origin']);
     98        });
     99  }, 'sec-fetch-mode - no options - registration');
    100 
    101  promise_test((t) => {
    102    const key = '{{uuid()}}';
    103    const url = makeRequestURL(
    104      key, [], { mime: 'application/javascript' }
    105    );
    106 
    107    return induceRequest(t, url, {}, 'update', () => retrieve(key))
    108      .then(() => retrieve(key))
    109      .then((headers) => {
    110          assert_own_property(headers, 'sec-fetch-mode');
    111          assert_array_equals(headers['sec-fetch-mode'], ['same-origin']);
    112        });
    113  }, 'sec-fetch-mode - no options - updating');
    114 
    115  promise_test((t) => {
    116    const key = '{{uuid()}}';
    117    const url = makeRequestURL(
    118      key, [], { mime: 'application/javascript' }
    119    );
    120 
    121    return induceRequest(t, url, {}, 'register')
    122      .then(() => retrieve(key))
    123      .then((headers) => {
    124          assert_own_property(headers, 'sec-fetch-dest');
    125          assert_array_equals(headers['sec-fetch-dest'], ['serviceworker']);
    126        });
    127  }, 'sec-fetch-dest - no options - registration');
    128 
    129  promise_test((t) => {
    130    const key = '{{uuid()}}';
    131    const url = makeRequestURL(
    132      key, [], { mime: 'application/javascript' }
    133    );
    134 
    135    return induceRequest(t, url, {}, 'update', () => retrieve(key))
    136      .then(() => retrieve(key))
    137      .then((headers) => {
    138          assert_own_property(headers, 'sec-fetch-dest');
    139          assert_array_equals(headers['sec-fetch-dest'], ['serviceworker']);
    140        });
    141  }, 'sec-fetch-dest - no options - updating');
    142 
    143  promise_test((t) => {
    144    const key = '{{uuid()}}';
    145    const url = makeRequestURL(
    146      key, [], { mime: 'application/javascript' }
    147    );
    148 
    149    return induceRequest(t, url, {}, 'register')
    150      .then(() => retrieve(key))
    151      .then((headers) => {
    152          assert_not_own_property(headers, 'sec-fetch-user');
    153        });
    154  }, 'sec-fetch-user - no options - registration');
    155 
    156  promise_test((t) => {
    157    const key = '{{uuid()}}';
    158    const url = makeRequestURL(
    159      key, [], { mime: 'application/javascript' }
    160    );
    161 
    162    return induceRequest(t, url, {}, 'update', () => retrieve(key))
    163      .then(() => retrieve(key))
    164      .then((headers) => {
    165          assert_not_own_property(headers, 'sec-fetch-user');
    166        });
    167  }, 'sec-fetch-user - no options - updating');
    168  </script>
    169 </body>
    170 </html>