forked from mirrors/gecko-dev
We keep a set of properties which are running on the `CascadeLevel::Animations`, to make sure we compose the correct properties for the rule on Animations/Transitions cascade level. In other words, without this patch, we may accidentally compose an animation rule for `CascadeLevel::Animations` (from the KeyframeEffect of the existing transition), even if we don't have any running animations, if this transition property is a custom property. The resolution is to use `AnimatedPropertyIDSet`, for `mPropertiesForAnimationsLevel`, so we can skip the custom properties which shouldn't belong to Animations cascade level when composing them. Note that we don't change the logic, and we are still using `nsCSSPropertyIDSet` for `EffectSet::mPropertiesWithImportantRules` because compositor animations don't allow custom properties now. (This could be a future work I guess, if we are using custom property values for opacity, translate, rotate, scale, etc.) Also, I noticed the subtest, "No transition when removing @property rule", is similar to the testcase in this bug, and so it got passed as well. Differential Revision: https://phabricator.services.mozilla.com/D210589 |
||
|---|---|---|
| .. | ||
| 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 | ||
| CSSAnimation.cpp | ||
| CSSAnimation.h | ||
| CSSPseudoElement.cpp | ||
| CSSPseudoElement.h | ||
| CSSTransition.cpp | ||
| CSSTransition.h | ||
| DocumentTimeline.cpp | ||
| DocumentTimeline.h | ||
| EffectCompositor.cpp | ||
| EffectCompositor.h | ||
| EffectSet.cpp | ||
| EffectSet.h | ||
| ElementAnimationData.cpp | ||
| ElementAnimationData.h | ||
| Keyframe.h | ||
| KeyframeEffect.cpp | ||
| KeyframeEffect.h | ||
| KeyframeEffectParams.h | ||
| KeyframeUtils.cpp | ||
| KeyframeUtils.h | ||
| moz.build | ||
| PostRestyleMode.h | ||
| PseudoElementHashEntry.h | ||
| ScrollTimeline.cpp | ||
| ScrollTimeline.h | ||
| ScrollTimelineAnimationTracker.cpp | ||
| ScrollTimelineAnimationTracker.h | ||
| TimingParams.cpp | ||
| TimingParams.h | ||
| ViewTimeline.cpp | ||
| ViewTimeline.h | ||