test_legacy_mouse_events_prevent_default_wheel.html (1531B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>PreventDefault on legacy mouse events also default prevents the wheel event</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <script src="/tests/SimpleTest/EventUtils.js"></script> 8 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 9 <style> 10 body { 11 height: 10000px; 12 } 13 </style> 14 <script> 15 for (const legacyEvent of ["DOMMouseScroll", "MozMousePixelScroll"]) { 16 add_task(async function test() { 17 const wheelEventPromise = new Promise(resolve => { 18 window.addEventListener("wheel", e => resolve(e), { passive: true, once: true }); 19 }) 20 21 window.addEventListener(legacyEvent, e => { 22 info(`Prevent default on ${legacyEvent}`); 23 e.preventDefault(); 24 }, { passive: false, once: true }); 25 26 const event = { 27 deltaMode: WheelEvent.DOM_DELTA_LINE, 28 deltaX: -10, 29 deltaY: -10, 30 lineOrPageDeltaX: -10, 31 lineOrPageDeltaY: -10 32 } 33 info("Synthesize wheel event"); 34 synthesizeWheel(document.body, 10, 10, event, window); 35 36 info("Waiting for wheel event"); 37 const wheelEvent = await wheelEventPromise; 38 39 ok(wheelEvent.defaultPrevented, "Wheel was default prevented"); 40 }, `Default preventing ${legacyEvent} also default prevents wheel`); 41 } 42 </script> 43 </head> 44 <body> 45 <p id="display"></p> 46 <div id="content" style="display: none"></div> 47 <pre id="test"></pre> 48 </body> 49 </html>