Don't generate change hint in AddLayerChangesForAnimation if the animation is blocked running on the compositor

RESOLVED FIXED in Firefox 65

Status

()

defect
P3
normal
RESOLVED FIXED
8 months ago
8 months ago

People

(Reporter: hiro, Assigned: hiro)

Tracking

Trunk
mozilla65
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox65 fixed)

Details

Attachments

(5 attachments, 1 obsolete attachment)

When I woke up this morning, I noticed this fact.  And this change should fix intermittent failures bug 1506758.
Assignee: nobody → hikezoe
This is just an optimization regardless of the fix improper change hint
generated by blocked animations.
This version takes an EffectSet to avoid lookup the hashtable for the EffectSet.

The argument should be `EffectSet&` instead of `const EffectSet&` since
FindAnimationsForCompositor might call UpdateCascadeResults which mutates the
EffectSet.

Depends on D12366
Without this change an assertion checking IsInStyleRefresh() in
EffectCompositor::PostRestyleForAnimation will be hit when we call
FindAnimationsForCompositor from RestyleManager::DoProcessPendingRestyles
that will be introduced in a subsequent commit in this series.

I wrote a crash test which causes an assertion in KeyframeEffect::CanThrottle()
without the subsequent commit, but we need more work in display item stuff to
make the assertion won't happen (bug 1508466).

Depends on D12367
Now we no longer update the corresponding display items for the animations that
are prevented from running on the compositor if the animations themselves don't
generate any change hints, e.g the same value is specified in both 'from' and
'to' keyframes.  So that we can enable the reftests that we had been suffering
from continuous MozAfterPaint events.

Depends on D12368
Now the function takes AnimationPerformanceWarning::Type* as an optional
argument for the case where we don't need to output the warning.

Depends on D12368
Attachment #9026253 - Attachment is obsolete: true
Attachment #9026306 - Attachment description: Bug 1506988 - Factor out IsMatchForCompositor. r?birtles! → Bug 1506988 - Move IsMatchForCompositor to KeyframeEffect. r?birtles!
Attachment #9026255 - Attachment description: Bug 1506988 - Don't incorpolate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r?birtles! → Bug 1506988 - Don't incorporate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r?birtles!
Attachment #9026305 - Attachment description: Bug 1506988 - Factor out EffectCompositor::IsCompositorAnimationsBlockedOnFrame. r?birtles! → Bug 1506988 - Factor out EffectCompositor::AllowCompositorAnimationsOnFrame. r?birtles!
Pushed by hikezoe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f111ecab40ad
Skip applying change hint if we already have it in AddLayerChangesForAnimation. r=birtles
https://hg.mozilla.org/integration/autoland/rev/6f8a7015b448
Set the important rule change flag when a newly important rule is inserted. r=birtles
https://hg.mozilla.org/integration/autoland/rev/eb0439a6c56e
Factor out EffectCompositor::AllowCompositorAnimationsOnFrame. r=birtles
https://hg.mozilla.org/integration/autoland/rev/d639382fc76a
Move IsMatchForCompositor to KeyframeEffect. r=birtles
https://hg.mozilla.org/integration/autoland/rev/fc274ec5515e
Don't incorporate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r=birtles
Duplicate of this bug: 1506758
No longer blocks: 1506860
You need to log in before you can comment on or make changes to this bug.