gecko-dev/dom/animation
Boris Chiou bf583442cc Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio
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
2024-05-21 16:55:00 +00:00
..
test Bug 1896762 - Make animation timing match the spec. r=smaug,firefox-animation-reviewers,boris 2024-05-17 16:33:06 +00:00
Animation.cpp Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
Animation.h Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
AnimationComparator.h
AnimationEffect.cpp
AnimationEffect.h
AnimationEventDispatcher.cpp Bug 1890002 - Don't create DOM event for those animation events which don't need to be dispatched, r=emilio 2024-04-06 08:04:29 +00:00
AnimationEventDispatcher.h Bug 1890002 - Don't create DOM event for those animation events which don't need to be dispatched, r=emilio 2024-04-06 08:04:29 +00:00
AnimationPerformanceWarning.cpp
AnimationPerformanceWarning.h
AnimationPropertySegment.h
AnimationTarget.h
AnimationTimeline.cpp
AnimationTimeline.h Bug 1888748 - Ensure animations started on the same tick share ready time. r=birtles 2024-04-17 06:07:17 +00:00
AnimationUtils.cpp
AnimationUtils.h
ComputedTiming.h
CSSAnimation.cpp
CSSAnimation.h
CSSPseudoElement.cpp
CSSPseudoElement.h
CSSTransition.cpp
CSSTransition.h
DocumentTimeline.cpp Bug 1896762 - Make animation timing match the spec. r=smaug,firefox-animation-reviewers,boris 2024-05-17 16:33:06 +00:00
DocumentTimeline.h Bug 1896762 - Make animation timing match the spec. r=smaug,firefox-animation-reviewers,boris 2024-05-17 16:33:06 +00:00
EffectCompositor.cpp Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
EffectCompositor.h
EffectSet.cpp
EffectSet.h Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
ElementAnimationData.cpp
ElementAnimationData.h
Keyframe.h
KeyframeEffect.cpp Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
KeyframeEffect.h Bug 1888317 - Use AnimatedPropertyIDSet for EffectSet::mPropertiesForAnimationsLevel. r=layout-reviewers,zrhoffman,emilio 2024-05-21 16:55:00 +00:00
KeyframeEffectParams.h
KeyframeUtils.cpp
KeyframeUtils.h
moz.build
PostRestyleMode.h
PseudoElementHashEntry.h
ScrollTimeline.cpp
ScrollTimeline.h Bug 1824877 Part 2 - Rename nsHTMLScrollFrame to mozilla::ScrollContainerFrame. r=dholbert 2024-05-15 17:50:48 +00:00
ScrollTimelineAnimationTracker.cpp
ScrollTimelineAnimationTracker.h
TimingParams.cpp
TimingParams.h
ViewTimeline.cpp
ViewTimeline.h