tor-browser

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

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>