serial-disabled-by-permissions-policy.https.sub.html (1889B)
1 <!DOCTYPE html> 2 <body> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/resources/test-only-api.js"></script> 6 <script src="/permissions-policy/resources/permissions-policy.js"></script> 7 <script> 8 'use strict'; 9 const sub = 'https://{{domains[www]}}:{{ports[https][0]}}'; 10 const same_origin_src = '/permissions-policy/resources/permissions-policy-serial.html'; 11 const cross_origin_src = sub + same_origin_src; 12 const same_origin_worker_frame_src = 13 '/permissions-policy/resources/permissions-policy-serial-worker.html'; 14 const cross_origin_worker_frame_src = sub + same_origin_worker_frame_src; 15 const header = 'Permissions-Policy header serial=()'; 16 17 promise_test(() => { 18 return navigator.serial.getPorts().then(() => { 19 assert_unreached('expected promise to reject with SecurityError'); 20 }, error => { 21 assert_equals(error.name, 'SecurityError'); 22 }); 23 }, header + ' disallows getPorts in the top-level document.'); 24 25 async_test(t => { 26 test_feature_availability('serial.getPorts()', t, same_origin_src, 27 expect_feature_unavailable_default); 28 }, header + ' disallows same-origin iframes.'); 29 30 async_test(t => { 31 test_feature_availability('serial.getPorts()', t, same_origin_worker_frame_src, 32 expect_feature_unavailable_default); 33 }, header + ' disallows workers in same-origin iframes.'); 34 35 async_test(t => { 36 test_feature_availability('serial.getPorts()', t, cross_origin_src, 37 expect_feature_unavailable_default); 38 }, header + ' disallows cross-origin iframes.'); 39 40 async_test(t => { 41 test_feature_availability('serial.getPorts()', t, 42 cross_origin_worker_frame_src, 43 expect_feature_unavailable_default); 44 }, header + ' disallows workers in cross-origin iframes.'); 45 46 fetch_tests_from_worker(new Worker( 47 'resources/serial-disabled-by-permissions-policy-worker.js')); 48 49 </script> 50 </body>