tor-browser

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

test_enabled_pref.html (1434B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Bug 1645054 - test dom.serviceWorkers.enabled preference</title>
      5 </head>
      6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7 <script src="utils.js"></script>
      8 <script>
      9 
     10  function create_iframe(url) {
     11    return new Promise(function(res) {
     12      iframe = document.createElement('iframe');
     13      iframe.src = url;
     14      iframe.onload = function() { res(iframe) }
     15      document.body.appendChild(iframe);
     16    });
     17  }
     18 
     19  async function do_fetch(pref) {
     20    await SpecialPowers.pushPrefEnv({ set: [pref] });
     21 
     22    let iframe = await create_iframe("./pref/fetch_nonexistent_file.html");
     23    let status = await iframe.contentWindow.fetch_status();
     24 
     25    await SpecialPowers.popPrefEnv();
     26    return status;
     27  }
     28 
     29  add_task(async () => {
     30    await SpecialPowers.pushPrefEnv({
     31      set: [['dom.serviceWorkers.testing.enabled', true]]
     32    });
     33 
     34    let reg = await navigator.serviceWorker.register(
     35      'pref/intercept_nonexistent_file_sw.js');
     36    await waitForState(reg.installing, 'activated');
     37 
     38    let status;
     39 
     40    status = await do_fetch(['dom.serviceWorkers.enabled', true]);
     41    is(status, 200, 'SW enabled');
     42 
     43    status = await do_fetch(['dom.serviceWorkers.enabled', false]);
     44    is(status, 404, 'SW disabled');
     45 
     46    status = await do_fetch(['dom.serviceWorkers.enabled', true]);
     47    is(status, 200, 'SW enabled again');
     48 
     49    await reg.unregister();
     50  });
     51 
     52 </script>
     53 <body>
     54 </body>
     55 </html>