mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 19:25:43 +00:00
10960cad13
When an animation targets a CSS property that could cause a containing block to be generated for its descendants, this containing block must be generated even if the particular property values used by the animation would not normally trigger generation of a containing block (e.g. transform: none). This is due to the implicit application of will-change defined in CSS Animations[1] and Web Animations[2]. Since this containing block is generated at the start of the animations, we can throttle animations that produce the UpdateContainingBlock change hint for animations that are not visible since they shouldn't have any further side effects beyond the generation of containing blocks (which have already happened). [1] https://drafts.csswg.org/css-animations/#animations [2] https://drafts.csswg.org/web-animations-1/#side-effects-section Unfortunately perspective animations starting with 'none' and transform animations from 'none' to 'none' don't create a containing block (bug 1470349 and bug 1470370). That doesn't block the optimization in this patch, however, since those bugs occur regardless of element visibility. MozReview-Commit-ID: 8rTl8dShHrD --HG-- extra : rebase_source : 886b003d0f3c555a12baf0de81b4130ef2d71e82 |
||
---|---|---|
.. | ||
test | ||
Animation.cpp | ||
Animation.h | ||
AnimationComparator.h | ||
AnimationEffect.cpp | ||
AnimationEffect.h | ||
AnimationEventDispatcher.cpp | ||
AnimationEventDispatcher.h | ||
AnimationPerformanceWarning.cpp | ||
AnimationPerformanceWarning.h | ||
AnimationPropertySegment.h | ||
AnimationTarget.h | ||
AnimationTimeline.cpp | ||
AnimationTimeline.h | ||
AnimationUtils.cpp | ||
AnimationUtils.h | ||
ComputedTiming.h | ||
ComputedTimingFunction.cpp | ||
ComputedTimingFunction.h | ||
CSSPseudoElement.cpp | ||
CSSPseudoElement.h | ||
DocumentTimeline.cpp | ||
DocumentTimeline.h | ||
EffectCompositor.cpp | ||
EffectCompositor.h | ||
EffectSet.cpp | ||
EffectSet.h | ||
Keyframe.h | ||
KeyframeEffect.cpp | ||
KeyframeEffect.h | ||
KeyframeEffectParams.h | ||
KeyframeUtils.cpp | ||
KeyframeUtils.h | ||
moz.build | ||
PendingAnimationTracker.cpp | ||
PendingAnimationTracker.h | ||
PseudoElementHashEntry.h | ||
TimingParams.cpp | ||
TimingParams.h |