tor-browser

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

helper_bug1780701.html (2047B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <meta name="viewport" content="width=device-width, initial-scale=1">
      6  <title>Test that scroll snap wont't happen on zoomed content</title>
      7  <script src="apz_test_utils.js"></script>
      8  <script src="apz_test_native_event_utils.js"></script>
      9  <script src="/tests/SimpleTest/paint_listener.js"></script>
     10  <style>
     11    body {
     12      margin: 0;
     13    }
     14    html {
     15      overflow-y: scroll;
     16      scroll-snap-type: y proximity;
     17    }
     18    .snap {
     19      width: 100vw;
     20      height: 100vh;
     21      background-color: blue;
     22      position: absolute;
     23      top: 200px;
     24      scroll-snap-align: start;
     25    }
     26  </style>
     27 </head>
     28 <body>
     29  <div class="snap"></div>
     30  <div style="width: 100%; height: 500vh;"></div>
     31  <script type="application/javascript">
     32    async function test() {
     33      let transformEndPromise = promiseTransformEnd();
     34 
     35      // Use scrollToVisual() to scroll visual viewport.
     36      SpecialPowers.DOMWindowUtils.scrollToVisual(
     37        100, 400,
     38        SpecialPowers.DOMWindowUtils.UPDATE_TYPE_MAIN_THREAD,
     39        SpecialPowers.DOMWindowUtils.SCROLL_MODE_SMOOTH);
     40 
     41      // Wait for the end of the scroll.
     42      await transformEndPromise;
     43      await waitToClearOutAnyPotentialScrolls();
     44 
     45      const pageTop = visualViewport.pageTop;
     46      const pageLeft = visualViewport.pageLeft;
     47 
     48      let eventFired = false;
     49      window.visualViewport.addEventListener("scroll", () => {
     50        eventFired = true;
     51      });
     52 
     53      // Trigger a scroll snap, it should nothing.
     54      SpecialPowers.wrap(document.documentElement).mozScrollSnap();
     55 
     56      await waitToClearOutAnyPotentialScrolls();
     57      ok(!eventFired, "No visual scroll should happen");
     58 
     59      // Sanity checks to see whether the visual viewport hasn't been changed.
     60      is(visualViewport.pageTop, pageTop);
     61      is(visualViewport.pageLeft, pageLeft);
     62    }
     63 
     64    SpecialPowers.DOMWindowUtils.setResolutionAndScaleTo(10.0);
     65    waitUntilApzStable()
     66    .then(test)
     67    .then(subtestDone, subtestFailed);
     68  </script>
     69 </body>
     70 </html>