tor-browser

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

transition-realms-and-identity.html (1590B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 
      5 <iframe id="i" src="/common/blank.html"></iframe>
      6 
      7 <script>
      8 promise_test(async () => {
      9  await new Promise(resolve => window.onload = resolve);
     10 
     11  i.contentWindow.navigation.addEventListener("navigate", e => {
     12    e.intercept();
     13  });
     14 
     15  const returnValueFinished1 = i.contentWindow.navigation.navigate("?1").finished;
     16  const transition1 = i.contentWindow.navigation.transition;
     17  const transitionFinished1 = transition1.finished;
     18 
     19  assert_true(returnValueFinished1 instanceof i.contentWindow.Promise);
     20  assert_true(transition1 instanceof i.contentWindow.NavigationTransition);
     21  assert_true(transitionFinished1 instanceof i.contentWindow.Promise);
     22 
     23  assert_not_equals(returnValueFinished1, transitionFinished1);
     24 
     25  // Ensure the getters aren't generating new objects each time.
     26  assert_equals(i.contentWindow.navigation.transition, transition1);
     27  assert_equals(i.contentWindow.navigation.transition.finished, transitionFinished1);
     28 
     29  assert_equals(await transitionFinished1, undefined);
     30 
     31  // Ensure stuff does change after another navigation.
     32  const committed2 = i.contentWindow.navigation.navigate("?2").committed;
     33  const transition2 = i.contentWindow.navigation.transition;
     34  const transitionFinished2 = transition2.finished;
     35 
     36  assert_not_equals(transition2, transition1);
     37  assert_not_equals(transitionFinished2, transitionFinished1);
     38 
     39  await committed2;
     40 }, "Realm and identity of the navigation.transition object and its finished promise");
     41 </script>