tor-browser

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

manual-scroll-resets-when-no-fragment.html (1239B)


      1 <!doctype html>
      2 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <body>
      6 <div style="height: 200vh; width: 200vw;"></div>
      7 <div id="frag"></div>
      8 <script>
      9 promise_test(async t => {
     10  // Wait for after the load event so that the navigation doesn't get converted
     11  // into a replace navigation.
     12  await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0));
     13  let start_url = location.href;
     14  await navigation.navigate("#frag").finished;
     15  assert_not_equals(window.scrollY, 0);
     16 
     17  let intercept_resolve;
     18  let navigate_event;
     19  navigation.onnavigate = e => {
     20    navigate_event = e;
     21    e.intercept({ handler: () => new Promise(r => intercept_resolve = r),
     22                  scroll: "manual" });
     23  };
     24  let promises = navigation.navigate(start_url);
     25  await promises.committed;
     26  assert_not_equals(window.scrollY, 0);
     27  navigate_event.scroll();
     28  assert_equals(window.scrollY, 0);
     29  intercept_resolve();
     30  await promises.finished;
     31  assert_equals(window.scrollY, 0);
     32 }, "scroll: scroll() should reset scroll position when the destination url contains no fragment");
     33 </script>
     34 </body>