Please consider fixing high-resolution touchpad scrolling under Linux Wayland

The title issue is in reference to an upstream issue in Chromium. In a nutshell, here’s what it means…

On Mac and Windows, when using two-finger scrolling with a webpage in any modern browser (including Brave!), the webpage will track your finger’s movements nearly down to the pixel and with very little latency. This is excellent UX and makes scrolling through webpages very easy.

Unfortunately, this behavior is broken in most Chromium-based browsers – including Brave – running under Wayland. Two-finger scrolling feels incredibly janky and far less precise, scrolling in big chunks instead of pixel-by-pixel like it should, and with very noticeable latency. A related Ubuntu bug suggests it’s basically doing mouse-wheel emulation, which is not ideal at all.

Fortunately, there is a seemingly simple potential solution: as pointed out by one of the Chromium maintainers in the Chromium bug, reverting a certain Chromium commit does actually fix this. Fedora’s distribution of Chromium does this reversion; I’ve begun using it, and I can confirm its two-finger scrolling is just as smooth as a Mac and feels excellent to use.

I’ve created a short clip illustrating the stark difference. First browser is Fedora’s distribution of Chromium 78; the second one is Brave. As you’ll notice, I’m able to scroll the page far more granularly in Chromium, and the page tracks my finger pretty much directly. (Notice the “wiggle” at the end; that was caused by only a few millimeters of finger movement.) Compare that to Brave, which jumps around and has much more “blocky” scrolling – and it feels a lot worse, anecdotally.

(I would attach the video directly, but new users are not allowed to, apparently…)

If you’d like to reproduce this, it’s crucial to turn off Chromium’s Smooth Scrolling flag to get the full effect. (I will note that flag has no relation to this problem – Smooth Scrolling merely animates scroll wheel movements. It may mask the problem, but even with it turned on, it’s still interpolating between much larger scroll jumps without the fix applied, and it still feels really bad compared to true high-resolution scrolling.)

So that’s what I’m interested in discussing here: please consider reverting the relevant commit as well, or otherwise doing something to mitigate the problem where possible. I can’t say I fully understand the technical implementations of doing so, but there seems to be plenty of discussion about it in the linked issues, and I’d like to hear the developers’ thoughts as to how this might work.

If this does get resolved, I’d begin using Brave in a heartbeat. It would become the single best Linux browser out there, in my opinion.

1 Like

Does the Brave team have any comment on this?