Open Bug 1863239 Opened 1 year ago Updated 8 months ago

Consider adding an optional way to allow smooth wheel scrolling

Categories

(Remote Protocol :: Marionette, enhancement, P2)

enhancement

Tracking

(Not tracked)

People

(Reporter: hiro, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [webdriver:backlog])

I am not sure Remote Protocol::Marionette is the right component for this issue though, I'd start with here.

While I was running overscroll-behavior.html locally, I realized scrolling in the test is instant rather then smooth. Though the test itself scrolling in the test is supposed to be smooth.

There are basically two different types of wheel scrolling in Gecko, two fingers scrolling on touchpad and mouse wheel scrolling. On the touchpad case scrolling is instant while the user keeps touching the touchpad. On the mouse wheel case scrolling is smooth by default (depending on general.smoothScroll pref).

Their behaviors are slightly different, scrolling on touchpad causes overscrolling but mouse wheel scroll never cause overscrolling, for example.

So we should provide an option whether the scroll operation needs to be instant or smooth. Maybe it's an issue in WebDriver's spec?

(Note that the test, overscroll-behavior.html isn't related to overscrolling at all though)

Thanks for the bug Hiro! Lets see what we currently have...

As of now the scroll action is tight to a wheel input device only, which means that this will be the mentioned case for mouse, but we do not have it as part of a pointer input device. As such my idea over on https://github.com/w3c/webdriver/issues/1758 was to actually move the wheel action into the pointer type.

Beside that I assume that the instant/smooth setting would be the same for all browsers? This would be the requirement to have a cross-browser solution added to the specification.

Flags: needinfo?(hikezoe.birchill)

The way we'd do this in the current spec is to have a scrollType: "normal" / "smooth" attribute on the scroll action. But yes, putting it in the spec does depend somewhat on other browser having similar categories of scrolling (we can ofc make a gecko extension if needed, but that doesn't help with shared wpt).

(In reply to Henrik Skupin [:whimboo][⌚️UTC+2] from comment #1)

Thanks for the bug Hiro! Lets see what we currently have...

As of now the scroll action is tight to a wheel input device only, which means that this will be the mentioned case for mouse, but we do not have it as part of a pointer input device. As such my idea over on https://github.com/w3c/webdriver/issues/1758 was to actually move the wheel action into the pointer type.

The current GeckoDriver's scroll operation is rather the touchpad one.

Beside that I assume that the instant/smooth setting would be the same for all browsers? This would be the requirement to have a cross-browser solution added to the specification.

As far as I can tell Chrome has the same behavior as Firefox does. So for example, both Chrome and Firefox do overscroll while scrolling by touchpad, but don't while scrolling by mouse wheel.

So your idea does make sense to me.

Note that whether to scroll smooth or instant is somewhat orthogonal to pointer device types, for example, on Gecko mouse wheel scrolling is smooth by default, but users can change the behavior to instant scrolling by changing a pref.

Flags: needinfo?(hikezoe.birchill)

(In reply to Hiroyuki Ikezoe (:hiro) from comment #3)

Note that whether to scroll smooth or instant is somewhat orthogonal to pointer device types, for example, on Gecko mouse wheel scrolling is smooth by default, but users can change the behavior to instant scrolling by changing a pref.

Well, I should have used "independent" rather than "orthogonal".

Priority: -- → P2
Whiteboard: [webdriver:backlog]
You need to log in before you can comment on or make changes to this bug.