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

Reply via email to