Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 669ba9c48175d88cc78cf3a75d1217be9f5aea06
https://github.com/WebKit/WebKit/commit/669ba9c48175d88cc78cf3a75d1217be9f5aea06
Author: Sam Weinig <[email protected]>
Date: 2025-09-19 (Fri, 19 Sep 2025)
Changed paths:
M Source/WebCore/CMakeLists.txt
M Source/WebCore/Headers.cmake
M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
M Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/animation/AnimationEffect.cpp
M Source/WebCore/animation/AnimationEffect.h
M Source/WebCore/animation/AnimationTimeline.cpp
M Source/WebCore/animation/AnimationTimeline.h
M Source/WebCore/animation/BlendingKeyframes.cpp
M Source/WebCore/animation/BlendingKeyframes.h
M Source/WebCore/animation/CSSAnimation.cpp
M Source/WebCore/animation/CSSAnimation.h
M Source/WebCore/animation/CSSTransition.cpp
M Source/WebCore/animation/CSSTransition.h
M Source/WebCore/animation/CompositeOperation.cpp
M Source/WebCore/animation/CompositeOperation.h
M Source/WebCore/animation/KeyframeAnimationOptions.h
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/KeyframeEffectStack.cpp
M Source/WebCore/animation/KeyframeEffectStack.h
M Source/WebCore/animation/ScrollTimeline.cpp
M Source/WebCore/animation/ScrollTimeline.h
M Source/WebCore/animation/StyleOriginatedAnimation.cpp
M Source/WebCore/animation/StyleOriginatedAnimation.h
M Source/WebCore/animation/StyleOriginatedTimelinesController.cpp
M Source/WebCore/animation/StyleOriginatedTimelinesController.h
R Source/WebCore/animation/TimelineRange.cpp
R Source/WebCore/animation/TimelineRange.h
A Source/WebCore/animation/TimelineRangeValue.cpp
A Source/WebCore/animation/TimelineRangeValue.h
M Source/WebCore/animation/ViewTimeline.cpp
M Source/WebCore/animation/ViewTimeline.h
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/animation/WebAnimation.h
R Source/WebCore/animation/WebAnimationTypes.cpp
M Source/WebCore/animation/WebAnimationTypes.h
M Source/WebCore/animation/WebAnimationUtilities.cpp
M Source/WebCore/css/CSSPrimitiveValueMappings.h
M Source/WebCore/css/CSSProperties.json
R Source/WebCore/css/CSSToStyleMap.cpp
R Source/WebCore/css/CSSToStyleMap.h
M Source/WebCore/css/ShorthandSerializer.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Easing.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Easing.h
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.h
M Source/WebCore/css/parser/CSSPropertyParserCustom.h
M Source/WebCore/css/scripts/process-css-properties.py
M
Source/WebCore/css/scripts/test/TestCSSPropertiesResults/CSSPropertyNames.gperf
M Source/WebCore/css/values/CSSValueAggregates.h
M Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp
M Source/WebCore/page/ios/ContentChangeObserver.cpp
M Source/WebCore/page/ios/ContentChangeObserver.h
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
R Source/WebCore/platform/animation/Animation.cpp
R Source/WebCore/platform/animation/Animation.h
R Source/WebCore/platform/animation/AnimationList.cpp
R Source/WebCore/platform/animation/AnimationList.h
M Source/WebCore/platform/graphics/GraphicsLayer.h
A Source/WebCore/platform/graphics/GraphicsLayerAnimation.cpp
A Source/WebCore/platform/graphics/GraphicsLayerAnimation.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp
M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
M Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp
M Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h
M Source/WebCore/rendering/RenderElement.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerBacking.h
M Source/WebCore/rendering/RenderLayerModelObject.cpp
M Source/WebCore/rendering/RenderLayerModelObject.h
M Source/WebCore/rendering/style/RenderStyle.cpp
M Source/WebCore/rendering/style/RenderStyle.h
M Source/WebCore/rendering/style/RenderStyleConstants.cpp
M Source/WebCore/rendering/style/RenderStyleConstants.h
M Source/WebCore/rendering/style/RenderStyleInlines.h
M Source/WebCore/rendering/style/RenderStyleSetters.h
M Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp
M Source/WebCore/rendering/style/StyleMiscNonInheritedData.h
M Source/WebCore/rendering/style/StyleRareNonInheritedData.h
M Source/WebCore/style/StyleAdjuster.cpp
M Source/WebCore/style/StyleBuilderConverter.h
M Source/WebCore/style/StyleBuilderCustom.h
M Source/WebCore/style/StyleBuilderState.cpp
M Source/WebCore/style/StyleBuilderState.h
M Source/WebCore/style/StyleExtractorConverter.h
M Source/WebCore/style/StyleExtractorCustom.h
M Source/WebCore/style/StyleExtractorSerializer.h
M Source/WebCore/style/StyleResolver.cpp
M Source/WebCore/style/Styleable.cpp
M Source/WebCore/style/Styleable.h
M Source/WebCore/style/values/StyleValueTypes.h
A Source/WebCore/style/values/animations/StyleAnimation.cpp
A Source/WebCore/style/values/animations/StyleAnimation.h
A Source/WebCore/style/values/animations/StyleAnimations.h
A Source/WebCore/style/values/animations/StyleSingleAnimationDelay.h
A Source/WebCore/style/values/animations/StyleSingleAnimationDuration.h
A
Source/WebCore/style/values/animations/StyleSingleAnimationIterationCount.h
A Source/WebCore/style/values/animations/StyleSingleAnimationName.cpp
A Source/WebCore/style/values/animations/StyleSingleAnimationName.h
A Source/WebCore/style/values/animations/StyleSingleAnimationRange.cpp
A Source/WebCore/style/values/animations/StyleSingleAnimationRange.h
A Source/WebCore/style/values/animations/StyleSingleAnimationRangeName.cpp
A Source/WebCore/style/values/animations/StyleSingleAnimationRangeName.h
A Source/WebCore/style/values/animations/StyleSingleAnimationTimeline.cpp
A Source/WebCore/style/values/animations/StyleSingleAnimationTimeline.h
M Source/WebCore/style/values/easing/StyleCubicBezierEasingFunction.cpp
M Source/WebCore/style/values/easing/StyleCubicBezierEasingFunction.h
M Source/WebCore/style/values/easing/StyleEasingFunction.cpp
M Source/WebCore/style/values/easing/StyleEasingFunction.h
M Source/WebCore/style/values/easing/StyleLinearEasingFunction.cpp
M Source/WebCore/style/values/easing/StyleLinearEasingFunction.h
M Source/WebCore/style/values/easing/StyleSpringEasingFunction.cpp
M Source/WebCore/style/values/easing/StyleSpringEasingFunction.h
M Source/WebCore/style/values/easing/StyleStepsEasingFunction.cpp
M Source/WebCore/style/values/easing/StyleStepsEasingFunction.h
A Source/WebCore/style/values/primitives/StyleCoordinatedValueList.h
M
Source/WebCore/style/values/primitives/StyleLengthWrapper+CSSValueConversion.h
A
Source/WebCore/style/values/primitives/StyleLengthWrapper+DeprecatedCSSValueConversion.cpp
A
Source/WebCore/style/values/primitives/StyleLengthWrapper+DeprecatedCSSValueConversion.h
A Source/WebCore/style/values/scroll-animations/StyleScrollFunction.cpp
A Source/WebCore/style/values/scroll-animations/StyleScrollFunction.h
A Source/WebCore/style/values/scroll-animations/StyleViewFunction.cpp
A Source/WebCore/style/values/scroll-animations/StyleViewFunction.h
M Source/WebCore/style/values/scroll-animations/StyleViewTimelineInsets.cpp
M Source/WebCore/style/values/scroll-animations/StyleViewTimelineInsets.h
A Source/WebCore/style/values/transitions/StyleSingleTransitionDelay.h
A Source/WebCore/style/values/transitions/StyleSingleTransitionDuration.h
A Source/WebCore/style/values/transitions/StyleSingleTransitionProperty.cpp
A Source/WebCore/style/values/transitions/StyleSingleTransitionProperty.h
A Source/WebCore/style/values/transitions/StyleTransition.cpp
A Source/WebCore/style/values/transitions/StyleTransition.h
A Source/WebCore/style/values/transitions/StyleTransitions.h
M Source/WebKit/WebProcess/Inspector/WebInspectorBackendClient.cpp
M
Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDiscretePresentationController.mm
Log Message:
-----------
[Style] Convert the animation and transition properties to strong style types
https://bugs.webkit.org/show_bug.cgi?id=298838
Reviewed by Darin Adler.
Converts the `animation` and `transition` properties, and all their longhands,
to use strong style types.
This substantially overhauls the types used for animation styles. The major
changes include:
- Style system animations and transitions now have their own types,
`Style::Animation` and `Style::Transition`, rather than sharing the platform
`Animation` type. There was essentially nothing that took advantage of
the shared type (two calls in StyleOriginatedAnimation that were turned
into trivial virtual functions) and the shared type was not able to
efficiently represent both since some overlapping properties, like
`animation-duration` and `transition-duration` are defined to have
different types. As a result, `StyleOriginatedAnimation` no longer stores
a backing animation itself, but rather `CSSAnimation` stores a
`Style::Animation` and `CSSTransition` stores a `Style::Transition`.
- To manage the lists of animations and transitions, a new shared type,
`Style::CoordinatedValueList` was added to model the concept of the
same name from CSS Value 4:
https://www.w3.org/TR/css-values-4/#coordinated-value-list
I was hoping this could be shared with `background` and `mask`, but
it turns out WPT expects different truncation rules for them despite
the specs seeming to indicate they should align. An issue has been
file with the CSSWG to track this:
https://github.com/w3c/csswg-drafts/issues/12791.
- With the platform `Animation` type no longer used for backing style
animations, it was significantly simplified to only its remaining users
and renamed to `GraphicsLayerAnimation`, as it is only used to specify
animations specifically for `GraphicsLayer` now.
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/AnimationEffect.cpp:
* Source/WebCore/animation/AnimationEffect.h:
* Source/WebCore/animation/AnimationTimeline.cpp:
* Source/WebCore/animation/AnimationTimeline.h:
* Source/WebCore/animation/BlendingKeyframes.cpp:
* Source/WebCore/animation/BlendingKeyframes.h:
* Source/WebCore/animation/CSSAnimation.cpp:
* Source/WebCore/animation/CSSAnimation.h:
* Source/WebCore/animation/CSSTransition.cpp:
* Source/WebCore/animation/CSSTransition.h:
* Source/WebCore/animation/CompositeOperation.cpp:
* Source/WebCore/animation/CompositeOperation.h:
* Source/WebCore/animation/KeyframeAnimationOptions.h:
* Source/WebCore/animation/KeyframeEffect.cpp:
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffectStack.cpp:
* Source/WebCore/animation/KeyframeEffectStack.h:
* Source/WebCore/animation/ScrollTimeline.cpp:
* Source/WebCore/animation/ScrollTimeline.h:
* Source/WebCore/animation/StyleOriginatedAnimation.cpp:
* Source/WebCore/animation/StyleOriginatedAnimation.h:
* Source/WebCore/animation/StyleOriginatedTimelinesController.cpp:
* Source/WebCore/animation/StyleOriginatedTimelinesController.h:
* Source/WebCore/animation/TimelineRange.cpp: Removed.
* Source/WebCore/animation/TimelineRange.h: Removed.
* Source/WebCore/animation/TimelineRangeValue.cpp: Added.
* Source/WebCore/animation/TimelineRangeValue.h: Added.
* Source/WebCore/animation/ViewTimeline.cpp:
* Source/WebCore/animation/ViewTimeline.h:
* Source/WebCore/animation/WebAnimation.cpp:
* Source/WebCore/animation/WebAnimation.h:
* Source/WebCore/animation/WebAnimationTypes.h:
* Source/WebCore/animation/WebAnimationUtilities.cpp:
* Source/WebCore/css/CSSPrimitiveValueMappings.h:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSToStyleMap.cpp: Removed.
* Source/WebCore/css/CSSToStyleMap.h: Removed.
* Source/WebCore/css/ShorthandSerializer.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Easing.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Easing.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.h:
* Source/WebCore/css/parser/CSSPropertyParserCustom.h:
* Source/WebCore/css/scripts/process-css-properties.py:
*
Source/WebCore/css/scripts/test/TestCSSPropertiesResults/CSSPropertyNames.gperf:
* Source/WebCore/css/values/CSSValueAggregates.h:
* Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp:
* Source/WebCore/page/ios/ContentChangeObserver.cpp:
* Source/WebCore/page/ios/ContentChangeObserver.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
* Source/WebCore/platform/animation/Animation.cpp: Removed.
* Source/WebCore/platform/animation/Animation.h: Removed.
* Source/WebCore/platform/animation/AnimationList.cpp: Removed.
* Source/WebCore/platform/animation/AnimationList.h: Removed.
* Source/WebCore/platform/graphics/GraphicsLayer.h:
* Source/WebCore/platform/graphics/GraphicsLayerAnimation.cpp: Added.
* Source/WebCore/platform/graphics/GraphicsLayerAnimation.h: Added.
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
* Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp:
* Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp:
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h:
* Source/WebCore/rendering/RenderElement.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
* Source/WebCore/rendering/RenderLayerModelObject.h:
* Source/WebCore/rendering/style/RenderStyle.cpp:
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleConstants.cpp:
* Source/WebCore/rendering/style/RenderStyleConstants.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
* Source/WebCore/rendering/style/RenderStyleSetters.h:
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp:
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.h:
* Source/WebCore/rendering/style/StyleRareNonInheritedData.h:
* Source/WebCore/style/StyleAdjuster.cpp:
* Source/WebCore/style/StyleBuilderConverter.h:
* Source/WebCore/style/StyleBuilderCustom.h:
* Source/WebCore/style/StyleBuilderState.cpp:
* Source/WebCore/style/StyleBuilderState.h:
* Source/WebCore/style/StyleExtractorConverter.h:
* Source/WebCore/style/StyleExtractorCustom.h:
* Source/WebCore/style/StyleExtractorSerializer.h:
* Source/WebCore/style/StyleResolver.cpp:
* Source/WebCore/style/Styleable.cpp:
* Source/WebCore/style/Styleable.h:
* Source/WebCore/style/values/StyleValueTypes.h:
* Source/WebCore/style/values/animations/StyleAnimation.cpp: Added.
* Source/WebCore/style/values/animations/StyleAnimation.h: Added.
* Source/WebCore/style/values/animations/StyleAnimations.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationDelay.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationDuration.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationIterationCount.h:
Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationName.cpp: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationName.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationRange.cpp: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationRange.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationRangeName.cpp:
Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationRangeName.h: Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationTimeline.cpp:
Added.
* Source/WebCore/style/values/animations/StyleSingleAnimationTimeline.h: Added.
* Source/WebCore/style/values/easing/StyleCubicBezierEasingFunction.cpp:
* Source/WebCore/style/values/easing/StyleCubicBezierEasingFunction.h:
* Source/WebCore/style/values/easing/StyleEasingFunction.cpp:
* Source/WebCore/style/values/easing/StyleEasingFunction.h:
* Source/WebCore/style/values/easing/StyleLinearEasingFunction.cpp:
* Source/WebCore/style/values/easing/StyleLinearEasingFunction.h:
* Source/WebCore/style/values/easing/StyleSpringEasingFunction.cpp:
* Source/WebCore/style/values/easing/StyleSpringEasingFunction.h:
* Source/WebCore/style/values/easing/StyleStepsEasingFunction.cpp:
* Source/WebCore/style/values/easing/StyleStepsEasingFunction.h:
* Source/WebCore/style/values/primitives/StyleCoordinatedValueList.h: Added.
*
Source/WebCore/style/values/primitives/StyleLengthWrapper+CSSValueConversion.h:
*
Source/WebCore/style/values/primitives/StyleLengthWrapper+DeprecatedCSSValueConversion.cpp:
Added.
*
Source/WebCore/style/values/primitives/StyleLengthWrapper+DeprecatedCSSValueConversion.h:
Added.
* Source/WebCore/style/values/scroll-animations/StyleScrollFunction.cpp: Added.
* Source/WebCore/style/values/scroll-animations/StyleScrollFunction.h: Added.
* Source/WebCore/style/values/scroll-animations/StyleViewFunction.cpp: Added.
* Source/WebCore/style/values/scroll-animations/StyleViewFunction.h: Added.
* Source/WebCore/style/values/scroll-animations/StyleViewTimelineInsets.cpp:
* Source/WebCore/style/values/scroll-animations/StyleViewTimelineInsets.h:
* Source/WebCore/style/values/transitions/StyleSingleTransitionDelay.h: Added.
* Source/WebCore/style/values/transitions/StyleSingleTransitionDuration.h:
Added.
* Source/WebCore/style/values/transitions/StyleSingleTransitionProperty.cpp:
Added.
* Source/WebCore/style/values/transitions/StyleSingleTransitionProperty.h:
Added.
* Source/WebCore/style/values/transitions/StyleTransition.cpp: Added.
* Source/WebCore/style/values/transitions/StyleTransition.h: Added.
* Source/WebCore/style/values/transitions/StyleTransitions.h: Added.
* Source/WebKit/WebProcess/Inspector/WebInspectorBackendClient.cpp:
*
Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDiscretePresentationController.mm:
Canonical link: https://commits.webkit.org/300237@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes