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>