Closed
Bug 1502026
Opened 6 years ago
Closed 6 years ago
Buy iPhone page animation seems janky
Categories
(Core :: DOM: Animation, defect, P3)
Core
DOM: Animation
Tracking
()
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: overholt, Assigned: birtles, NeedInfo)
References
Details
Attachments
(1 file)
https://www.apple.com/ca/shop/buy-iphone/iphone-xs has an animation of phone images sliding into a "stack". Then, some details about the models including name and price and a blue "Select" button fades in. When that latter fade-in happens, the former image-sliding animation gets janky.
Reporter | ||
Comment 1•6 years ago
|
||
I can reproduce on Windows with and without Web Render and we tried it on a Mac, too, and it was janky there.
Flags: needinfo?(bbirtles)
Assignee | ||
Comment 2•6 years ago
|
||
This appears to be because of bug 1301305. Specifically, the stack of phones are animated using transform animations but we don't run them on the compositor because there is a transition of 'height' that starts at the same time, and we try to synchronize geometric animations that start at the same time. We don't want to drop that behavior or the animation on trello.com looks worse but maybe there's some way we can tweak the heuristic so that we don't apply it to this site but continue to apply it to trello.com. One option might be to not synchronize CSS animations and CSS transitions--they tend to be used in different ways suggesting that even if they happen to start at the same time they probably aren't expected to be synchronized. That would happen to fix this site, I think, but this site could also have been created entirely using CSS transitions in which case it wouldn't help. Other than that, I'm not sure. Maybe it's worth trying the transitions vs animations distinction. Let me see if I can look at it next week. (For what it's worth, Google are considering adding the same "synchronize all the geometric animations" heuristic we have to Chrome in which case they will hit this same issue. Authors really just shouldn't animate properties that trigger re-layout and expect it to be smooth--and especially not on a massive hero element.)
Flags: needinfo?(bbirtles)
Comment 3•6 years ago
|
||
Yeah, I think it's worth a shot.
Updated•6 years ago
|
Priority: -- → P3
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → bbirtles
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•6 years ago
|
||
Hiro mentioned that he was saw the following warning in the console: `Animation of ‘transform’ cannot be run on the compositor because it should be synchronized with animations of geometric properties that started at the same time [image with id 'tracking-protection-icon-animatable-image']` I'm guessing that the transform CSS animation was being blocked by this transition: https://searchfox.org/mozilla-central/rev/fc3d974254660b34638b2af9d5431618b191b233/browser/themes/shared/identity-block/identity-block.inc.css#163-165 If so, the strategy of only synchronizing CSS transitions with CSS transitions, and other animations with other animations might fix this case too.
Assignee | ||
Comment 5•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=07d02372869ce2c96e59772bc6618b31a5f170e2 Looking at the animation inspector this seems to fix the issue but I'm honestly having a hard time reproducing the jank on this fairly fast machine.
Assignee | ||
Comment 6•6 years ago
|
||
For some content both transitions and animations are triggered simultaneously. As a result of bug 1301305, if the set of animations includes animations that affect geometry, then we ensure that any transform animations are run on the main thread, rather than on the compositor. However, we have observed some content where this synchronizing is not necessary and produces unnecessary jank. In the particular cases we have observed, the transitions and animations do not need to be synchronized so this patch refines the approach from bug 1301305 to only synchronize within the set of CSS transitions or the set of non-transition animations.
Pushed by bbirtles@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/60082f8c23b4 Only synchronize CSS transitions with CSS transitions; r=hiro
Comment 8•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/60082f8c23b4
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Reporter | ||
Comment 9•6 years ago
|
||
Today's nightly (about:buildconfig says it was built from https://hg.mozilla.org/mozilla-central/rev/182a1b088330a2d72310ae2561004d955571e236) is still slightly janky when the "Select" button fades in. But it seems smoother overall :)
Assignee | ||
Comment 10•6 years ago
|
||
(In reply to Andrew Overholt [:overholt] from comment #9) > Today's nightly (about:buildconfig says it was built from > https://hg.mozilla.org/mozilla-central/rev/ > 182a1b088330a2d72310ae2561004d955571e236) is still slightly janky when the > "Select" button fades in. But it seems smoother overall :) Yeah, it definitely still janks. It appears to happen when the scroll bar changes length so I think there's something else going on there (which is less likely to be an animation issue). Needinfoing me for now so I can try to have another look later in the week (on PTO today).
Flags: needinfo?(bbirtles)
Updated•5 years ago
|
QA Whiteboard: [good first verify]
You need to log in
before you can comment on or make changes to this bug.
Description
•