tor-browser

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

callback-removed-frame.html (1152B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>requestIdleCallback on removed frame shouldn't call back</title>
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 <script>
      7  async_test(function (t) {
      8    assert_false(document.hidden, "document.hidden must exist and be false to run this test properly");
      9 
     10    function start() {
     11      var frame = document.createElement('iframe');
     12      frame.addEventListener('load', _ => connect(frame), {once:true});
     13      frame.src = "about:blank";
     14      document.body.appendChild(frame);
     15    }
     16 
     17    function connect(frame) {
     18      var contentWindow = frame.contentWindow;
     19      contentWindow.requestIdleCallback(_ => callback0(frame, contentWindow));
     20      t.step_timeout(function() { t.done(); }, 1000);
     21    }
     22 
     23    function callback0(f, w) {
     24      document.body.removeChild(f);
     25      w.requestIdleCallback(t.unreached_func("requestIdleCallback callback should not trigger the callback"));
     26    }
     27 
     28    addEventListener('load', start, {once:true});
     29  }, "calling requestIdleCallback on a contentWindow from a removed iframe should not trigger the callback");
     30 </script>