tor-browser

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

scrolling.js (982B)


      1 function raf() {
      2  return new Promise((resolve) => {
      3    // rAF twice.
      4    window.requestAnimationFrame(() => {
      5      window.requestAnimationFrame(resolve);
      6    });
      7  });
      8 }
      9 
     10 async function runTest({target, eventName, passive, expectCancelable}) {
     11  await raf();
     12 
     13  let cancelable = null;
     14  let arrived = false;
     15  target.addEventListener(eventName, function (event) {
     16    cancelable = event.cancelable;
     17    arrived = true;
     18  }, {passive:passive, once:true});
     19 
     20  promise_test(async (t) => {
     21    t.add_cleanup(() => {
     22      document.querySelector('.remove-on-cleanup')?.remove();
     23    });
     24    const pos_x = Math.floor(window.innerWidth / 2);
     25    const pos_y = Math.floor(window.innerHeight / 2);
     26    const delta_x = 0;
     27    const delta_y = 100;
     28 
     29    await new test_driver.Actions()
     30      .scroll(pos_x, pos_y, delta_x, delta_y).send();
     31    await t.step_wait(() => arrived, `Didn't get event ${eventName} on ${target.localName}`);
     32    assert_equals(cancelable, expectCancelable);
     33  });
     34 }