tor-browser

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

background-fetch.https.html (5293B)


      1 <!DOCTYPE html>
      2 <title>Test fenced frame does not allow call background fetch</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="resources/utils.js"></script>
      6 <script src="/common/get-host-info.sub.js"></script>
      7 <script src="/common/utils.js"></script>
      8 
      9 <body>
     10 
     11  <script>
     12    const background_fetch_register_key = token();
     13 
     14    async function test(url, expected, message) {
     15      attachFencedFrame(url)
     16 
     17      // Get the result for the top-level fenced frame.
     18      const fenced_frame_result = await nextValueFromServer(
     19          background_fetch_register_key);
     20      assert_equals(fenced_frame_result, expected, message);
     21    }
     22 
     23    promise_test(async () => {
     24      const method = "fetch";
     25      const fenced_frame_url = 'resources/background-fetch-inner.https.html';
     26      const url = generateURL(fenced_frame_url,
     27                              [background_fetch_register_key, method]);
     28 
     29      await test(
     30        url,
     31        '[backgroundFetch.fetch] Failed inside fencedframe as expected',
     32        'backgroundFetch.fetch is disallowed inside a same-origin fenced frame');
     33 
     34      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
     35      await test(
     36        CROSS_ORIGIN_DESTINATION,
     37        '[backgroundFetch.fetch] Failed inside fencedframe as expected',
     38        'backgroundFetch.fetch is disallowed inside a cross-origin fenced frame');
     39    }, 'backgroundFetch.fetch');
     40 
     41    promise_test(async () => {
     42      const method = "get";
     43      const fenced_frame_url = 'resources/background-fetch-inner.https.html';
     44      const url = generateURL(fenced_frame_url,
     45                              [background_fetch_register_key, method]);
     46      await test(
     47        url,
     48        '[backgroundFetch.get] Failed inside fencedframe as expected',
     49        'backgroundFetch.get is disallowed inside a same-origin fenced frame');
     50 
     51      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
     52      await test(
     53        CROSS_ORIGIN_DESTINATION,
     54        '[backgroundFetch.get] Failed inside fencedframe as expected',
     55        'backgroundFetch.get is disallowed inside a cross-origin fenced frame');
     56    }, 'backgroundFetch.get');
     57 
     58    promise_test(async () => {
     59      const method = "getIds";
     60      const fenced_frame_url = 'resources/background-fetch-inner.https.html';
     61      const url = generateURL(fenced_frame_url,
     62                              [background_fetch_register_key, method]);
     63      await test(
     64        url,
     65        '[backgroundFetch.getIds] Failed inside fencedframe as expected',
     66        'backgroundFetch.getIds is disallowed inside a same-origin fenced frame');
     67 
     68      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
     69      await test(
     70        CROSS_ORIGIN_DESTINATION,
     71        '[backgroundFetch.getIds] Failed inside fencedframe as expected',
     72        'backgroundFetch.getIds is disallowed inside a cross-origin fenced frame');
     73    }, 'backgroundFetch.getIds');
     74 
     75    promise_test(async () => {
     76      const method = "fetch";
     77      const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html';
     78      const url = generateURL(fenced_frame_url,
     79                              [background_fetch_register_key, method]);
     80 
     81      await test(
     82        url,
     83        '[backgroundFetch.fetch] Failed inside fencedframe as expected',
     84        'backgroundFetch.fetch is disallowed inside a same-origin fenced frame');
     85 
     86      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
     87      await test(
     88        CROSS_ORIGIN_DESTINATION,
     89        '[backgroundFetch.fetch] Failed inside fencedframe as expected',
     90        'backgroundFetch.fetch is disallowed inside a cross-origin fenced frame');
     91    }, 'backgroundFetch.fetch in service worker');
     92 
     93    promise_test(async () => {
     94      const method = "get";
     95      const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html';
     96      const url = generateURL(fenced_frame_url,
     97                              [background_fetch_register_key, method]);
     98      await test(
     99        url,
    100        '[backgroundFetch.get] Failed inside fencedframe as expected',
    101        'backgroundFetch.get is disallowed inside a same-origin fenced frame');
    102 
    103      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
    104      await test(
    105        CROSS_ORIGIN_DESTINATION,
    106        '[backgroundFetch.get] Failed inside fencedframe as expected',
    107        'backgroundFetch.get is disallowed inside a cross-origin fenced frame');
    108    }, 'backgroundFetch.get in service worker');
    109 
    110    promise_test(async () => {
    111      const method = "getIds";
    112      const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html';
    113      const url = generateURL(fenced_frame_url,
    114                              [background_fetch_register_key, method]);
    115      await test(
    116        url,
    117        '[backgroundFetch.getIds] Failed inside fencedframe as expected',
    118        'backgroundFetch.getIds is disallowed inside a same-origin fenced frame');
    119 
    120      const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url);
    121      await test(
    122        CROSS_ORIGIN_DESTINATION,
    123        '[backgroundFetch.getIds] Failed inside fencedframe as expected',
    124        'backgroundFetch.getIds is disallowed inside a cross-origin fenced frame');
    125    }, 'backgroundFetch.getIds in service worker');
    126  </script>
    127 
    128 </body>