tor-browser

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

fetch-later.html (1479B)


      1 <!DOCTYPE html>
      2 <head>
      3 </head>
      4 <body>
      5  <script src="/resources/testharness.js"></script>
      6  <script src="/resources/testharnessreport.js"></script>
      7  <script src="/fetch/fetch-later/resources/fetch-later-helper.js"></script>
      8  <script>
      9    const PARAMS = new URL(location.href).searchParams;
     10    const TARGET_URL= decodeURIComponent(PARAMS.get('url')) || '';
     11    const BODY_TYPE = PARAMS.get('bodyType');
     12    const BODY_SIZE = PARAMS.get('bodySize');
     13    const BODY = BODY_TYPE !== null && BODY_SIZE !== null ? makeBeaconData(generatePayload(BODY_SIZE), BODY_TYPE) : null;
     14    const REQUEST_INIT = Object.assign({},
     15      PARAMS.has('activateAfter') ? {activateAfter: parseInt(PARAMS.get('activateAfter'), 10)} : null,
     16      PARAMS.has('method') ? {method: PARAMS.get('method')} : null,
     17      PARAMS.has('referrer') ? {referrer: PARAMS.get('referrer')} : null,
     18      BODY !== null ? {body: BODY} : null,
     19    );
     20 
     21    function postMessageBack(message) {
     22      if (window.opener) {
     23        window.opener.postMessage(message, '*');
     24      } else {
     25        parent.postMessage(message, '*');
     26      }
     27    }
     28 
     29    try {
     30      fetchLater(TARGET_URL, REQUEST_INIT);
     31      postMessageBack({type: FetchLaterIframeMessageType.DONE});
     32    } catch (e) {
     33      postMessageBack({
     34        type: FetchLaterIframeMessageType.ERROR,
     35        // When an error is caught, it might not be cloneable across the boundary.
     36        error: {name: e.name, message: e.message}
     37      });
     38    }
     39  </script>
     40 </body>