Tab shrink animation is janky and leaves behind "ghost" of full-size tab
Categories
(Firefox for Android :: Tabs, defect)
Tracking
()
People
(Reporter: dholbert, Unassigned)
References
Details
(Whiteboard: [fxdroid][group4])
Attachments
(3 files)
Steps to reproduce
- Open a ta in Firefox Nightly on Android
- Tap the tab-tray button in the toolbar, and watch the animation as the tab shrinks.
- Tap the tab to restore it, and watch the animation as it grows.
- Repeat steps 2-3.
Expected behavior
- Smooth animation.
- Only one copy of the tab-content visible at a time.
Actual behavior
- Animation feels pretty janky/jumpy.
- There are multiple copies of the tab-content visible at once. As the tab shrinks, it also leaves behind a "ghost" of the full-size tab, which gradually fades out.
Device information
- Firefox version: 146.0a1 2025-11-04
- Android device model: Pixel 4
- Android OS version: 13
Any additional information?
I can also repro on my Pixel 10 Pro XL with Android 16 (one of the more powerful Android devices available), so I imagine this is even more noticeable on older/lower-powered devices.
| Reporter | ||
Comment 1•1 month ago
|
||
| Reporter | ||
Comment 2•1 month ago
|
||
| Reporter | ||
Comment 3•1 month ago
•
|
||
Here's a simple HTML page that plays back the attached screencast in slow motion, to make details easier to see (modulo video-compression artifacts).
Comparing the Firefox portion to the Chrome portion, here are things that feel a bit off in Firefox vs. better in Chrome:
A) The animation has a longer duration in Firefox, which is maybe fine, except that it makes any imperfections easier to notice.
B) The animation frame-rate seems to be lower (i.e. more of a "slideshow" feel) in Firefox.
D) The animation in Firefox looks like maybe it "changes direction" halfway through. Specifically: for the first half of the "shrink" animation, the left side of the shrinking tab stays fixed on the left side of the screen, and the top edge moves downwards relatively slowly. Then, for the second half of the animation, the left edge abruptly starts moving inwards and the top edge starts moving downwards much faster. We seem to switch between these two phases pretty abruptly. Whereas in Chrome, the tab animates toward a consistent target with no midflight direction-changes).
E) The animation in Chrome has an "ease-in-out" style which feels like it comes to a natural stop, whereas in Firefox it proceeds a a more linear speed, which makes the stop feel a bit more abrupt.
F) When I tap the tab to restore it, it briefly flashes solid-gray before the animation starts playing.
G) During the shrink animation, Firefox gradually fades out a "ghost" of the full-size tab; and during the restore animation, Firefox gradually fades in a "ghost" of the full-size tab, as shown in comment 1. Chrome does not do this; the area outside of the shrinking/growing tab is just blank, as you might expect.
| Reporter | ||
Updated•1 month ago
|
| Reporter | ||
Comment 4•1 month ago
|
||
(In reply to Daniel Holbert [:dholbert] from comment #3)
Comparing the Firefox portion to the Chrome portion, here are things that feel a bit off in Firefox vs. better in Chrome:
[...]
F) When I tap the tab to restore it, it briefly flashes solid-gray before the animation starts playing.
I filed bug 1998578 on this specific issue.
| Reporter | ||
Comment 5•1 month ago
|
||
(I recognize several of the other letters in comment 3 might also deserve their own bug; I'll leave it to the folks here to triage how to split things up. Mostly wanted to get this filed with a screencast showing the issues for now.)
Updated•1 month ago
|
Updated•1 month ago
|
Comment 6•21 days ago
|
||
In my experience I also see a final flash of the old tab at one point.
| Reporter | ||
Comment 7•19 days ago
|
||
(In reply to Julien Wajsberg [:julienw] from comment #6)
In my experience I also see a final flash of the old tab at one point.
Same; sometimes I see that, but easier-to-repro is the old-tab fillling the screen as the new tab animates in. I just filed bug 2004100 on that.
Description
•