tor-browser

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

test_nofetch_handler.html (1976B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for Bugs 1181127 and 1325101</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script src="error_reporting_helpers.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8  <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
      9 </head>
     10 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181127">Mozilla Bug 1181127</a>
     11 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181127">Mozilla Bug 1325101</a>
     12 <p id="display"></p>
     13 <div id="content" style="display: none">
     14 
     15 </div>
     16 <pre id="test">
     17 </pre>
     18 
     19 <script src="utils.js"></script>
     20 <script class="testbody" type="text/javascript">
     21 
     22 add_task(function setupPrefs() {
     23  return SpecialPowers.pushPrefEnv({"set": [
     24    ["dom.serviceWorkers.enabled", true],
     25    ["dom.serviceWorkers.testing.enabled", true],
     26    // Make sure the event handler during the install event persists. This ensures
     27    // the reason for which the interception doesn't occur is because of the
     28    // handlesFetch=false flag from ServiceWorkerInfo.
     29    ["dom.serviceWorkers.idle_timeout", 299999],
     30  ]});
     31 });
     32 
     33 var iframeg;
     34 function create_iframe(url) {
     35  return new Promise(function(res) {
     36    iframe = document.createElement('iframe');
     37    iframe.src = url;
     38    iframe.onload = function() { res(iframe) }
     39    document.body.appendChild(iframe);
     40    iframeg = iframe;
     41  })
     42 }
     43 
     44 add_task(async function test_nofetch_worker() {
     45  let registration = await navigator.serviceWorker.register(
     46    "nofetch_handler_worker.js", { scope: "./nofetch_handler_worker/"} )
     47    .then(swr => waitForState(swr.installing, 'activated', swr));
     48 
     49  let iframe = await create_iframe("./nofetch_handler_worker/doesnt_exist.html");
     50  ok(!iframe.contentDocument.body.innerHTML.includes("intercepted"), "Request was not intercepted.");
     51 
     52  await SpecialPowers.popPrefEnv();
     53  await registration.unregister();
     54 });
     55 </script>
     56 </body>
     57 </html>