tor-browser

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

commit 8960edb0df7370254ae5c6a8fbcd000e0fdf813d
parent 2394151328cdae0642e026db4a9ab53d2f7b7720
Author: Martin Robinson <mrobinson@igalia.com>
Date:   Mon, 15 Dec 2025 18:08:15 +0000

Bug 2005243 [wpt PR 56634] - compositing: Have `preventDefault` prevent the scroll behavior of wheel events, a=testonly

Automatic update from web-platform-tests
compositing: Have `preventDefault` prevent the scroll behavior of wheel events

This change makes it so that when `preventDefault` is called on a wheel
event, the scroll is prevented. The downside here is that there is more
latency on wheel based scroll events. This can be mitigated in the
future by moving the scroll initiation to script. That's left for a
followup though.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

--

wpt-commits: c744570d9521c500d82c67c09ebcb0c8384f70c9
wpt-pr: 56634

Diffstat:
Atesting/web-platform/tests/dom/events/scrolling/wheel-event-no-scroll-after-prevent-default.html | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtesting/web-platform/tests/html/dom/documents/resource-metadata-management/document-cookie.html | 6+++---
2 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/testing/web-platform/tests/dom/events/scrolling/wheel-event-no-scroll-after-prevent-default.html b/testing/web-platform/tests/dom/events/scrolling/wheel-event-no-scroll-after-prevent-default.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> + +<head> +<meta charset="utf-8"> +<title>Ensure that the calling `preventDefault` on a wheel event prevents a scroll from happening</title> +<link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +</head> + +<body> + <div id="scroller" style="width: 100px; height: 100px; overflow: scroll; position: relative;"> + <div style="position: absolute; width: 100px; height: 500px; background: red;"></div> + <div style="position: absolute; width: 100px; height: 100px; background: green;"></div> + </div> + + <script> + function waitForFrame() { + return new Promise(resolve => { + window.requestAnimationFrame(resolve); + }); + } + + function runTest() { + promise_test(async(t) => { + let wheelEventFired = false; + let scrollEventFired = false; + scroller.addEventListener("wheel", (event) => { + wheelEventFired = true; + event.preventDefault() + }); + scroller.addEventListener("scroll", (event) => { + scrollEventFired = true; + event.preventDefault() + }); + + await new test_driver.Actions() + .addWheel("wheel1") + .scroll(50, 50, 0, 30, {origin: "viewport"}) + .pause(1) + .scroll(50, 50, 0, 30, {origin: "viewport"}) + .pause(1) + .scroll(50, 50, 0, 30, {origin: "viewport"}) + .send(); + + await waitForFrame(); + await waitForFrame(); + await waitForFrame(); + await waitForFrame(); + + assert_true(wheelEventFired); + assert_false(scrollEventFired); + }, "When `preventDefault` is called on a WheelEvent, scrolling should be prevented."); + } + window.onload = runTest; + </script> +</body> + diff --git a/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-cookie.html b/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-cookie.html @@ -9,9 +9,9 @@ <script> const TEST_CASES = [ - {value: "", expected: "", test: "Empty value"}, - {value: "a=b", expected: "a=b", test: "A simple cookie"}, - {value: "b=A\0Z", expected: "", test: "A null char"}, + {value: "", expected: "", name: "Empty value"}, + {value: "a=b", expected: "a=b", name: "A simple cookie"}, + {value: "b=A\0Z", expected: "", name: "A null char"}, ]; test(function(){