No inertial scrolling in tab bar for pixel-based scrolls
Categories
(Toolkit :: UI Widgets, defect, P3)
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.
Updated•2 years ago
|
Comment 1•2 years ago
|
||
Martin, have you been able to reproduce this? Any idea where to start looking? Would this make more sense in Core :: Widget: Gtk?
Comment 2•2 years ago
|
||
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.
Updated•2 years ago
|
| Reporter | ||
Comment 3•2 years ago
|
||
From Mozregression:
Last good revision: c0e446786cdcc146f4e99a303a2fc58aa19d5edf
First bad revision: 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.
Updated•2 years ago
|
Comment 4•2 years ago
|
||
:ren, since you are the author of the regressor, bug 1753033, could you take a look?
For more information, please visit BugBot documentation.
Comment 5•2 years ago
|
||
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.
Comment 6•2 years ago
|
||
Confirmed based on comment 5. Setting tracking flags based on regression range.
I chose severity S4 since it appears to be an aesthetic issue.
Updated•2 years ago
|
Updated•2 years ago
|
Comment 7•1 year ago
|
||
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)
Comment 8•1 year ago
|
||
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
Comment 9•1 year ago
|
||
Kinda, there's a few related issues here...
Comment 10•1 year ago
|
||
(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.
Updated•1 year ago
|
Comment 11•1 year ago
|
||
(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.
Description
•