language-model-iframe.tentative.https.html (2630B)
1 <!DOCTYPE html> 2 <meta name="timeout" content="long"> 3 <script src="/resources/testdriver.js"></script> 4 <script src='/resources/testdriver-vendor.js'></script> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/common/get-host-info.sub.js"></script> 8 <script src="../resources/util.js"></script> 9 <body></body> 10 <script> 11 'use strict'; 12 13 const { HTTPS_ORIGIN, HTTPS_NOTSAMESITE_ORIGIN } = get_host_info(); 14 const PATH = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1); 15 const IFRAME_PATH = PATH + 'resources/iframe-helper.html'; 16 17 promise_test(async t => { 18 const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH; 19 const iframe = await load_iframe(src, /*permissionPolicy=*/''); 20 await promise_rejects_dom(t, 'NotAllowedError', run_iframe_test(iframe, 'LanguageModelCreate')); 21 iframe.remove(); 22 }, 'Throw a \'NotAllowedError\' when creating LanguageModel within cross-origin iframe'); 23 24 promise_test(async t => { 25 const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH; 26 const iframe = await load_iframe(src, /*permissionPolicy=*/'language-model'); 27 assert_equals(await run_iframe_test(iframe, 'LanguageModelCreate'), 'Success'); 28 iframe.remove(); 29 }, 'LanguageModel can be created within cross-origin iframe with permission policy'); 30 31 promise_test(async t => { 32 const src = HTTPS_ORIGIN + IFRAME_PATH; 33 const iframe = await load_iframe(src, /*permissionPolicy=*/''); 34 assert_equals(await run_iframe_test(iframe, 'LanguageModelCreate'), 'Success'); 35 iframe.remove(); 36 }, 'LanguageModel can be used within same-origin iframe'); 37 38 promise_test(async t => { 39 const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH; 40 const iframe = await load_iframe(src, /*permissionPolicy=*/''); 41 assert_equals(await run_iframe_test(iframe, 'LanguageModelAvailability'), 'unavailable'); 42 iframe.remove(); 43 }, 'LanguageModel is unavailable within cross-origin iframe'); 44 45 promise_test(async t => { 46 const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH; 47 const iframe = await load_iframe(src, /*permissionPolicy=*/'language-model'); 48 assert_in_array(await run_iframe_test(iframe, 'LanguageModelAvailability'), kAvailableAvailabilities); 49 iframe.remove(); 50 }, 'LanguageModel is available within cross-origin iframe with permission policy'); 51 52 promise_test(async t => { 53 const src = HTTPS_ORIGIN + IFRAME_PATH; 54 const iframe = await load_iframe(src, /*permissionPolicy=*/''); 55 assert_in_array(await run_iframe_test(iframe, 'LanguageModelAvailability'), kAvailableAvailabilities); 56 iframe.remove(); 57 }, 'LanguageModel is available within same-origin iframe'); 58 59 </script>