tor-browser

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

pageswap-iframe.html (1542B)


      1 <!DOCTYPE HTML>
      2 <title>Tests pageswap dispatch on iframe Documents</title>
      3 <link rel="author" title="Khushal Sagar"  href="mailto:khushalsagar@chromium.org">
      4 <link rel="help" href="https://html.spec.whatwg.org/">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/resources/testdriver.js"></script>
      8 <script src="/resources/testdriver-vendor.js"></script>
      9 <script>
     10 setup({explicit_done: true});
     11 
     12 function runTest(frame) {
     13  let frameWindow = frame.contentWindow;
     14 
     15  let pageswapfired = false;
     16  let expectedUrl = frameWindow.location.href + '?new';
     17  frameWindow.onpageswap = (e) => {
     18      assert_equals(e.activation.entry.url, expectedUrl, 'activation url incorrect in pageswap');
     19      assert_equals(e.activation.navigationType, "push", 'navigation type incorrect in pageswap');
     20      assert_equals(e.activation.from, frameWindow.navigation.currentEntry, 'from entry incorrect in pageswap');
     21      assert_false(e.activation.entry.sameDocument, 'new entry must be cross-document');
     22      pageswapfired = true;
     23  }
     24 
     25  frameWindow.onpagehide = (e) => {
     26      assert_true(pageswapfired, 'pageswap not fired');
     27      done();
     28  }
     29 
     30  frame.src = expectedUrl;
     31 }
     32 
     33 promise_test(async t => {
     34  onload = () => {
     35    let frame = document.createElement('iframe');
     36    frame.src = "/resources/blank.html";
     37    frame.onload = () => {
     38      frame.contentWindow.requestAnimationFrame(() => {
     39        runTest(frame);
     40      });
     41    }
     42    document.body.appendChild(frame);
     43  };
     44 });
     45 </script>