tor-browser

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

html_custom-get-page.html (1586B)


      1 <!-- Any copyright is dedicated to the Public Domain.
      2     http://creativecommons.org/publicdomain/zero/1.0/ -->
      3 <!doctype html>
      4 
      5 <html>
      6  <head>
      7    <meta charset="utf-8"/>
      8    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
      9    <meta http-equiv="Pragma" content="no-cache" />
     10    <meta http-equiv="Expires" content="0" />
     11    <title>Network Monitor test page</title>
     12  </head>
     13 
     14  <body>
     15    <p>Performing a custom number of GETs</p>
     16 
     17    <script type="text/javascript">
     18      /* exported performRequests, hasOfflineEventFired */
     19      "use strict";
     20 
     21      function get(address) {
     22        return new Promise(resolve => {
     23          const xhr = new XMLHttpRequest();
     24          xhr.open("GET", address, true);
     25 
     26          xhr.onreadystatechange = function() {
     27            if (this.readyState == this.DONE) {
     28              resolve();
     29            }
     30          };
     31          xhr.send(null);
     32        });
     33      }
     34 
     35      // Use a count parameter to defeat caching.
     36      let count = 0;
     37 
     38      async function performRequests(total, url, timeout = 0) {
     39        if (!total) {
     40          return;
     41        }
     42        await get(url || "request_" + (count++));
     43        setTimeout(performRequests.bind(this, --total, url, timeout), timeout);
     44      }
     45 
     46      // For testing the offline mode in the netmonitor
     47      let isOfflineEventFired = false;
     48      window.addEventListener("offline", () => {
     49        isOfflineEventFired = true
     50      }, { once: true });
     51 
     52      function hasOfflineEventFired() {
     53        return isOfflineEventFired;
     54      }
     55    </script>
     56  </body>
     57 
     58 </html>