tor-browser

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

synthetic-events-cancelable.html (1283B)


      1 <!DOCTYPE html>
      2 <title>Synthetic events are always cancelable by default</title>
      3 <link rel="help" href="https://dom.spec.whatwg.org/#dictdef-eventinit">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script>
      7 const eventsMap = {
      8  wheel: 'WheelEvent',
      9  mousewheel: 'WheelEvent',
     10  touchstart: 'TouchEvent',
     11  touchmove: 'TouchEvent',
     12  touchend: 'TouchEvent',
     13  touchcancel: 'TouchEvent',
     14 }
     15 function isCancelable(eventName, interfaceName) {
     16  test(() => {
     17    assert_implements(interfaceName in self, `${interfaceName} should be supported`);
     18    let defaultPrevented = null;
     19    addEventListener(eventName, event => {
     20      event.preventDefault();
     21      defaultPrevented = event.defaultPrevented;
     22    });
     23    const event = new self[interfaceName](eventName);
     24    assert_false(event.cancelable, 'cancelable');
     25    const dispatchEventReturnValue = dispatchEvent(event);
     26    assert_false(defaultPrevented, 'defaultPrevented');
     27    assert_true(dispatchEventReturnValue, 'dispatchEvent() return value');
     28  }, `Synthetic ${eventName} event with interface ${interfaceName} is not cancelable`);
     29 }
     30 for (const eventName in eventsMap) {
     31  isCancelable(eventName, eventsMap[eventName]);
     32  isCancelable(eventName, 'Event');
     33 }
     34 </script>