tor-browser

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

replaceState-inside-back-handler-infinite.optional.html (831B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="../navigation-methods/return-value/resources/helpers.js"></script>
      5 <script>
      6 promise_test(async t => {
      7  await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0));
      8  await navigation.navigate("#push").finished;
      9  let { reject, promise } = Promise.withResolvers();
     10  navigation.addEventListener("navigate", () => {
     11    try {
     12      history.replaceState(null, "", "#");
     13    } catch (e) {
     14      reject(e);
     15    }
     16  });
     17  await Promise.all([
     18    promise_rejects_dom(t, "SecurityError", promise, "Infinite recursion in replaceState"),
     19    assertBothRejectDOM(t, navigation.back(), "AbortError")]);
     20 }, "infinite replaceState inside a navigate event for navigation.back()");
     21 </script>