tor-browser

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

same-origin-worklet-select-url-and-verify-custom-data-origin.tentative.https.sub.html (2655B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/common/utils.js"></script>
      5 <script src="/shared-storage/resources/util.js"></script>
      6 <script src="/shared-storage/resources/util.sub.js"></script>
      7 <script src="/fenced-frame/resources/utils.js"></script>
      8 
      9 <body>
     10 <script>
     11 'use strict';
     12 const sameOrigin = location.origin;
     13 const customOrigin0 = 'https://{{domains[www]}}:{{ports[https][0]}}';
     14 const customOrigin1 = 'https://{{domains[www1]}}:{{ports[https][0]}}';
     15 const customOrigin2 = 'https://{{domains[www2]}}:{{ports[https][0]}}';
     16 
     17 async_test(t => {
     18  createWorkletAndVerifyDataOrigin(
     19    t, /*data_origin=*/sameOrigin, /*script_origin=*/sameOrigin,
     20    /*expect_success=*/true, /*error_type=*/null);
     21 }, `For same-origin createWorklet with custom dataOrigin ${sameOrigin}, `
     22    + `where dataOrigin is same origin to the context's origin, `
     23    + `test selectURL() and verify its data origin.`);
     24 
     25 async_test(t => {
     26  createWorkletAndVerifyDataOrigin(
     27    t, /*data_origin=*/customOrigin0, /*script_origin=*/sameOrigin,
     28    /*expect_success=*/true, /*error_type=*/null);
     29 }, `For same-origin createWorklet with custom dataOrigin ${customOrigin0},`
     30   + ` where dataOrigin has opted in, test selectURL() and verify its data `
     31   + `origin.`);
     32 
     33 async_test(t => {
     34  createWorkletAndVerifyDataOrigin(
     35    t, /*data_origin=*/customOrigin1, /*script_origin=*/sameOrigin,
     36    /*expect_success=*/true, /*error_type=*/null);
     37 }, `For same-origin createWorklet with custom dataOrigin ${customOrigin1},`
     38   + ` where dataOrigin has opted in with "*", test selectURL() and verify `
     39   + `its data origin.`);
     40 
     41 async_test(t => {
     42  createWorkletAndVerifyDataOrigin(
     43    t, /*data_origin=*/customOrigin2, /*script_origin=*/sameOrigin,
     44    /*expect_success=*/false, /*error_type=*/'OperationError');
     45 }, `For same-origin createWorklet with custom dataOrigin ${customOrigin2},`
     46    +` where dataOrigin has not opted in, worklet creation will fail.`);
     47 
     48 async_test(t => {
     49  createWorkletAndVerifyDataOrigin(
     50    t, /*data_origin=*/'invalid', /*script_origin=*/sameOrigin,
     51    /*expect_success=*/false, /*error_type=*/'TypeError');
     52 }, 'For same-origin createWorklet with dataOrigin option "invalid", '
     53   + 'there is a TypeError thrown.');
     54 
     55 async_test(t => {
     56  createWorkletAndVerifyDataOrigin(
     57    t, /*data_origin=*/'data:application/javascript;alert("Hi!")',
     58    /*script_origin=*/sameOrigin, /*expect_success=*/false,
     59    /*error_type=*/'InvalidAccessError');
     60 }, 'For same-origin createWorklet with opaque dataOrigin, '
     61   + 'there is an InvalidAccessError thrown.');
     62 
     63 </script>
     64 </body>