tor-browser

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

a-click-during-load.html (1156B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="resources/helpers.js"></script>
      6 
      7 <body>
      8 <script>
      9 "use strict";
     10 promise_test(async t => {
     11  const sentinelIframe = await setupSentinelIframe(t);
     12  const startingHistoryLength = history.length;
     13 
     14  const code = `
     15    window.onload = () => {
     16      const a = document.createElement("a");
     17      a.href = "/common/blank.html?thereplacement";
     18      document.body.append(a);
     19      a.click();
     20    };
     21  `;
     22 
     23  const startURL = "resources/code-injector.html?pipe=sub(none)&code=" + encodeURIComponent(code);
     24  const afterReplacementURL = "/common/blank.html?thereplacement";
     25  const iframe = insertIframe(t, startURL);
     26 
     27  assert_equals(history.length, startingHistoryLength, "Inserting the under-test iframe must not change history.length");
     28 
     29  await waitForLoadAllowingIntermediateLoads(t, iframe, afterReplacementURL);
     30  assert_equals(history.length, startingHistoryLength + 1, "history.length must change after waiting for the load");
     31 }, "aElement.click() during the load event must NOT replace");
     32 </script>