fetch-local.html (1509B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Fetch Local resource</title> 4 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <script src="support.sub.js"></script> 8 <script> 9 "use strict"; 10 11 // Set the 'local-network-access' permission then attempt to fetch a resource 12 // in the local address space. 13 // 14 // By default, 'local-network-access' permission is set to 'granted'. This can 15 // be changed by passing in a different value via the 'permission' URL parameter. 16 // Valid values: 17 // 18 // * granted 19 // * denied 20 // * prompt 21 Promise.resolve().then(async () => { 22 23 const window_url = new URL(window.location.href); 24 let permission_value = 'granted'; 25 if (window_url.searchParams.has('permission')) { 26 permission_value = window_url.searchParams.get('permission'); 27 } 28 29 test_driver.set_test_context(opener); 30 await test_driver.set_permission({ name: 'local-network-access' }, permission_value); 31 32 const target = { 33 server: Server.HTTPS_LOCAL, 34 behavior: { response: ResponseBehavior.allowCrossOrigin() }, 35 }; 36 const targetUrl = resolveTargetUrl(target); 37 38 fetch(targetUrl) 39 .then(async function(response) { 40 const body = await response.text(); 41 const message = { 42 ok: response.ok, 43 type: response.type, 44 body: body, 45 }; 46 opener.postMessage(message, "*"); 47 }) 48 .catch(error => { 49 opener.postMessage({ error: error.toString() }, "*"); 50 }); 51 }); 52 </script>