Closed Bug 1947114 Opened 1 year ago Closed 1 year ago

[wayland] Vertical tabs scroll with touchpad is broken on non-Nightly versions

Categories

(Core :: Widget: Gtk, defect)

Firefox 136
defect

Tracking

()

VERIFIED FIXED
137 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox135 --- wontfix
firefox136 --- wontfix
firefox137 --- verified

People

(Reporter: lampe2020, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0

Steps to reproduce:

I enabled vertical tabs in Firefox Developer Edition 136.0b3 on Fedora 41 with KDE Plasma 6.2 on Wayland and tried to scroll through my tab bar with my trackpad with fine steps.

Actual results:

The tab bar jittered a few pixels up and down, but didn't significantly move in any direction, neither the direction I scrolled nor the opposite direction. Throwing the scroll somewhat works, but controled scrolling not at all.

Expected results:

The tab bar should have scrolled, just like it does when horizontal or when I scroll with my mouse wheel.

Attachment #9465094 - Attachment description: 2025-02-10 10-21-18.mkv → A screen recording of me first controlledly trying to scroll up and down, then throwing the scroll a few times.

The Bugbug bot thinks this bug should belong to the 'Firefox::Sidebar' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Sidebar

Scrolling only detects a few pixels movement but fast swipes can trigger kinetic scrolling.

Beta and Release are affected but not Nightly. The different behavior could be due to Bug 1846581 since it works with apz.gtk.pangesture.delta_mode = 2.

Works with toolkit.scrollbox.smoothScroll = false.
Works with MOZ_ENABLE_WAYLAND=0.

Regression window between 129.0b1 and 130.0b1.

Possibly regressed by Bug 1907592 which changed the scrollbox response to pixel deltas.

Status: UNCONFIRMED → NEW
Component: Sidebar → Widget: Gtk
Ever confirmed: true
Keywords: regression
Product: Firefox → Core
Regressed by: 1907592
See Also: → 1846581
Summary: Vertical tabs scroll with touchpad is broken on Wayland → [wayland] Vertical tabs scroll with touchpad is broken on non-Nightly versions

:jsudiaman, since you are the author of the regressor, bug 1907592, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Flags: needinfo?(jsudiaman)

Kinetic scroll and overscroll worked in the vertical tab scrollbox before the regression but don't since with apz.gtk.pangesture.delta_mode = 2 which is consistent with horizontal tabs.

Regression window with apz.gtk.pangesture.delta_mode = 1:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=de7bfa4d7c30ab51ace9eb7f3e30790515a30033&tochange=d2e1f0acc1ad19db478439b44064a14ebc4e18e0

Regressed by Bug 1907592.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1907592#c7 on why instant scrolling was necessary for vertical scrollboxes.

Since disabling toolkit.scrollbox.smoothScroll works, sounds like explicitly disabling smoothscroll on #tabbrowser-arrowscrollbox is a potential fix?

Severity: -- → S3
Flags: needinfo?(jsudiaman)

Interesting. Disabling toolkit.scrollbox.smoothScroll doesn't significantly affect the behaviour (it only looks a bit choppy when scrolling, but the scroll step size is still respected) but it fixes the problem.
At least as a band-aid fix that should suffice, but IMO a real fix should eventually be implemented, because otherwise there'll probably be reports about the scrolling being choppy.

(In reply to Jonathan Sudiaman [:jsudiaman] from comment #5)

See https://bugzilla.mozilla.org/show_bug.cgi?id=1907592#c7 on why instant scrolling was necessary for vertical scrollboxes.

Since disabling toolkit.scrollbox.smoothScroll works, sounds like explicitly disabling smoothscroll on #tabbrowser-arrowscrollbox is a potential fix?

:jsudiaman there are only two beta builds left in the cycle for Fx136
Are there plans to address to have a fix in time for Fx136 or will it come in a later release?

Flags: needinfo?(jsudiaman)

(In reply to Donal Meehan [:dmeehan] from comment #7)

(In reply to Jonathan Sudiaman [:jsudiaman] from comment #5)

See https://bugzilla.mozilla.org/show_bug.cgi?id=1907592#c7 on why instant scrolling was necessary for vertical scrollboxes.

Since disabling toolkit.scrollbox.smoothScroll works, sounds like explicitly disabling smoothscroll on #tabbrowser-arrowscrollbox is a potential fix?

:jsudiaman there are only two beta builds left in the cycle for Fx136
Are there plans to address to have a fix in time for Fx136 or will it come in a later release?

This will be fixed in a later release.

Flags: needinfo?(jsudiaman)

(In reply to Kestrel from comment #2)

Scrolling only detects a few pixels movement but fast swipes can trigger kinetic scrolling.

Beta and Release are affected but not Nightly. The different behavior could be due to Bug 1846581 since it works with apz.gtk.pangesture.delta_mode = 2.

Is this not something we can let ride the trains? Emilio?

Flags: needinfo?(emilio)

It's been enabled for a long time on Nightly without issues. There's an
underlying APZ issue here tho (that's tracked in bug 1944697), but no
reason not to do this IMO.

Assignee: nobody → emilio
Status: NEW → ASSIGNED

Sure, but bug 1944697 is the real bug here fwiw.

Flags: needinfo?(emilio)
See Also: → 1944697
See Also: → 1851258

I've been trying to understand how bug 1907592 regressed this. It turns out, it didn't!

The regression window in comment 4 is accurate:

https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=de7bfa4d7c30ab51ace9eb7f3e30790515a30033&tochange=d2e1f0acc1ad19db478439b44064a14ebc4e18e0

but that range contains two bugs: bug 1907592, and bug 1899582.

Local experimentation shows that it's actually bug 1899582 that regressed this, not bug 1907592. Specifically, it's the addition of overflow-y: auto on this line that changed the vertical overflow style of the vertical tab bar's scroll frame from hidden to auto, which made smooth scroll operations eligible for handoff to the compositor, which causes us to hit an APZ bug that causes this sluggish scrolling. (I'm not convinced yet that the APZ bug is bug 1944697, but it might be, or at least it might be one of the things we need to fix.)

Bug 1907592 then partially fixed this regression, by using instant rather than smooth scrolling, but only when the delta mode is pixels (which for Linux touchpad scrolls meant only on nightly).

Emilio's patch makes it so that Linux touchpad scrolling produces pixel scrolls on all channels, thereby working around the underlying platform bug on all channels.

Regressed by: 1899582
No longer regressed by: 1907592

Comment on attachment 9466910 [details]
Bug 1947114 - Let pixel-based touchpad scrolling on gtk ride the trains. r=stransky,hiro,botond

Revision D238649 was moved to bug 1851258. Setting attachment 9466910 [details] to obsolete.

Attachment #9466910 - Attachment is obsolete: true
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Duplicate of bug: 1851258
Resolution: --- → DUPLICATE
See Also: → 1949977

(In reply to Botond Ballo [:botond] from comment #12)

Local experimentation shows that it's actually bug 1899582 that regressed this, not bug 1907592. Specifically, it's the addition of overflow-y: auto on this line that changed the vertical overflow style of the vertical tab bar's scroll frame from hidden to auto, which made smooth scroll operations eligible for handoff to the compositor, which causes us to hit an APZ bug that causes this sluggish scrolling.

Filed bug 1949977 to track the underlying platform issue.

(In reply to Botond Ballo [:botond] from comment #12)

[...] changed the vertical overflow style of the vertical tab bar's scroll frame from hidden to auto, which made smooth scroll operations eligible for handoff to the compositor, which causes us to hit an APZ bug that causes this sluggish scrolling. (I'm not convinced yet that the APZ bug is bug 1944697, but it might be, or at least it might be one of the things we need to fix.)

I did confirm that bug 1944697 does not help here, and a different fix (which I am tracking in bug 1949977) is needed. I'm accordingly removing bug 1944697 from the "See Also" list.

See Also: 1944697
Duplicate of this bug: 1950956
Depends on: 1851258
No longer duplicate of bug: 1851258
Resolution: DUPLICATE → FIXED
Target Milestone: --- → 137 Branch
See Also: → 1924193

Hello! I have tried to reproduce the issue with firefox 136.0b3 on Ubuntu 22.04 unfortunately I wasn't able to.

Christian could you please look if the issue is fixed with firefox 137? Here is a link from where you can download it: "https://archive.mozilla.org/pub/firefox/candidates/137.0-candidates/build1/linux-x86_64/en-US/"

Thank you and have a nice day!

Flags: needinfo?(kontakt)

(In reply to Negritas Sergiu, Desktop QA from comment #18)

Hello! I have tried to reproduce the issue with firefox 136.0b3 on Ubuntu 22.04 unfortunately I wasn't able to.

I just tried it in developer edition 137.0b10 (auto-updated tarball installation on Fedora 41), and it seems to work as intended now.

Flags: needinfo?(kontakt)

Thank you for the reply Christian!

Based on the last comment I will mark this issue as VERIFIED-FIXED.

Have a nice day!

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: