Open Bug 1849201 Opened 2 years ago Updated 1 year ago

No inertial scrolling in tab bar for pixel-based scrolls

Categories

(Toolkit :: UI Widgets, defect, P3)

Desktop
Linux
defect

Tracking

()

Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- unaffected
firefox117 --- disabled
firefox118 --- disabled
firefox119 --- disabled

People

(Reporter: oshbug, Unassigned)

References

(Regression)

Details

(Keywords: regression)

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

Steps to reproduce:

Scroll using a trackpad on the tab bar (requires a large number of tabs to be open).

Note: I am using using Wayland on KDE, in case that makes a difference, and I believe this issue appeared in v118.

Actual results:

Tabs scrolled but instantly stopped moving once fingers are lifted off the trackpad/scrolling action stops.

Expected results:

The scrolling continues due to its "intertia" for a short while longer, making the scrolling feel much more fluid and natural.

Component: Untriaged → XUL Widgets
Product: Firefox → Toolkit

Martin, have you been able to reproduce this? Any idea where to start looking? Would this make more sense in Core :: Widget: Gtk?

Flags: needinfo?(stransky)

Did it work before? Is that a recent regression? If so please try to use mozregression tool to find broken commit:
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems?rd=Bug_info_Firefox#Use_Mozregression_tool
Thanks.

Flags: needinfo?(stransky) → needinfo?(oshbug)
Component: XUL Widgets → Widget: Gtk
Priority: -- → P3
Product: Toolkit → Core

From Mozregression:
Last good revision: c0e446786cdcc146f4e99a303a2fc58aa19d5edf
First bad revision: 2f51f44f5da6afbdb8a587b03f47fcdc7b672475

https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=c0e446786cdcc146f4e99a303a2fc58aa19d5edf&tochange=2f51f44f5da6afbdb8a587b03f47fcdc7b672475

This seems to point to one specific commit, associated with https://bugzilla.mozilla.org/show_bug.cgi?id=1753033
This commit is related to inertial/kinetic scrolling, but not specifically in the tab bar. I can't see any mention of this specific issue by anyone else.

Flags: needinfo?(oshbug)
Keywords: regression
Regressed by: 1753033

:ren, since you are the author of the regressor, bug 1753033, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(renevietnam29)

I can reproduce this and confirm it's a regression from bug 1753033, which changed the default pan gesture delta mode from "page mode" to "pixel mode" on the Nightly channel.

It's not clear why using "pixel mode" breaks inertial scrolling of the tab bar -- this will need to be investigated.

A workaround for the time being is to go to about:config and set apz.gtk.pangesture.delta_mode to 1 (this restores "page mode").

Fixing this should block the rollout of "pixel mode" (if we decide to do that at all) to the release channel.

Flags: needinfo?(renevietnam29)
Blocks: 1851258

Confirmed based on comment 5. Setting tracking flags based on regression range.
I chose severity S4 since it appears to be an aesthetic issue.

Severity: -- → S4
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Unspecified → Linux
Hardware: Unspecified → Desktop

This is a toolkit issue. When using pixel deltas they use instant scrolling, see this: (https://searchfox.org/mozilla-central/rev/f9f9b422f685244dcd3f6826b70d34a496ce5853/toolkit/content/widgets/arrowscrollbox.js#672-674)

Component: Widget: Gtk → UI Widgets
Product: Core → Toolkit
Summary: No inertial scrolling in tab bar → No inertial scrolling in tab bar for pixel-based scrolls
Version: Firefox 118 → unspecified

When using pixel deltas they use instant scrolling

It looks like this behavior was introduced in https://hg.mozilla.org/integration/autoland/rev/11d86d5c2159 / Bug 1387084 - Use instant scroll behavior when doing pixel scrolling. Should this bug be considered a regression of bug 1387084?
https://searchfox.org/mozilla-central/rev/9f31d5882aff67a950d20bd37acdbe70b38c9bec/toolkit/content/widgets/scrollbox.xml#676-678

Kinda, there's a few related issues here...

See Also: → 1387084, 1944697

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

Fixing this should block the rollout of "pixel mode" (if we decide to do that at all) to the release channel.

Note that we decided not to block the rollout of "pixel mode" to the release channel (bug 1851258) on this issue, as we now understand the lack of inertial scrolling is not caused by a bug in the GTK widget codepaths that produce pixel scrolls, but a choice made in the tab bar code to do instant rather than smooth scrolling in response to pixel scrolls.

That choice (made in bug 1387084 for the horizontal tab bar and bug 1907592 for the vertical tab bar) seems to have been made to work around platform bugs affecting smooth scrolling in the tab bar (at least, I'm fairly sure this is the case for the vertical tab bar). One of the platform bugs was fixed in bug 1932985; I filed bug 1949977 for what I believe is a remaining one. The use of smooth scrolling could be considered again once that is fixed.

No longer blocks: 1851258
See Also: → 1851258, 1949977
See Also: 1944697

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

the lack of inertial scrolling is [...] a choice made in the tab bar code to do instant rather than smooth scrolling in response to pixel scrolls.

That choice (made in bug 1387084 for the horizontal tab bar and bug 1907592 for the vertical tab bar) seems to have been made to work around platform bugs affecting smooth scrolling in the tab bar (at least, I'm fairly sure this is the case for the vertical tab bar). One of the platform bugs was fixed in bug 1932985; I filed bug 1949977 for what I believe is a remaining one. The use of smooth scrolling could be considered again once that is fixed.

As an update on this, bug 1949977 has been fixed, and in bug 1960506, smooth scrolling in response to pixel scrolls was re-enabled in the vertical tab bar (reverting bug 1907592) in Firefox 139.

The horizontal tab bar still uses instant scrolling in response to pixel scrolls; perhaps we could consider changing this too as a follow-up.

You need to log in before you can comment on or make changes to this bug.