[webkit-changes] [WebKit/WebKit] b56268: Convert shadow and filter types to strongly typed ...
Sam Weinig
noreply at github.com
Sat Dec 7 14:49:29 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b5626802cc009d8ecc6d16402759c2aa0745eb59
https://github.com/WebKit/WebKit/commit/b5626802cc009d8ecc6d16402759c2aa0745eb59
Author: Sam Weinig <sam at webkit.org>
Date: 2024-12-07 (Sat, 07 Dec 2024)
Changed paths:
M Source/WTF/wtf/StdLibExtras.h
M Source/WebCore/CMakeLists.txt
M Source/WebCore/SaferCPPExpectations/RefCntblBaseVirtualDtorExpectations
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/CSSPropertyAnimation.cpp
A Source/WebCore/css/CSSAppleColorFilterPropertyValue.cpp
A Source/WebCore/css/CSSAppleColorFilterPropertyValue.h
A Source/WebCore/css/CSSBoxShadowPropertyValue.cpp
A Source/WebCore/css/CSSBoxShadowPropertyValue.h
R Source/WebCore/css/CSSFilterFunctionDescriptor.h
M Source/WebCore/css/CSSFilterImageValue.cpp
M Source/WebCore/css/CSSFilterImageValue.h
A Source/WebCore/css/CSSFilterPropertyValue.cpp
A Source/WebCore/css/CSSFilterPropertyValue.h
M Source/WebCore/css/CSSGradientValue.cpp
M Source/WebCore/css/CSSProperties.json
R Source/WebCore/css/CSSShadowValue.cpp
R Source/WebCore/css/CSSShadowValue.h
A Source/WebCore/css/CSSTextShadowPropertyValue.cpp
A Source/WebCore/css/CSSTextShadowPropertyValue.h
M Source/WebCore/css/CSSValue.cpp
M Source/WebCore/css/CSSValue.h
M Source/WebCore/css/CSSValuePool.cpp
M Source/WebCore/css/CSSValuePool.h
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/ComputedStyleExtractor.h
A Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.cpp
A Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.h
A Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.cpp
A Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.h
A Source/WebCore/css/DeprecatedCSSOMTextShadowValue.cpp
A Source/WebCore/css/DeprecatedCSSOMTextShadowValue.h
M Source/WebCore/css/DeprecatedCSSOMValue.cpp
M Source/WebCore/css/DeprecatedCSSOMValue.h
M Source/WebCore/css/DeprecatedCSSOMValueList.h
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Background.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.h
M Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp
M Source/WebCore/css/parser/CSSPropertyParserConsumer+MetaConsumerDefinitions.h
M Source/WebCore/css/parser/CSSPropertyParserConsumer+TextDecoration.cpp
M Source/WebCore/css/typedom/CSSStyleValueFactory.cpp
M Source/WebCore/css/values/CSSValueAggregates.h
M Source/WebCore/css/values/CSSValueTypes.h
A Source/WebCore/css/values/backgrounds/CSSBoxShadow.h
A Source/WebCore/css/values/backgrounds/CSSBoxShadowProperty.h
M Source/WebCore/css/values/color/CSSColor.h
A Source/WebCore/css/values/filter-effects/CSSAppleColorFilterProperty.h
A Source/WebCore/css/values/filter-effects/CSSAppleInvertLightnessFunction.h
A Source/WebCore/css/values/filter-effects/CSSBlurFunction.h
A Source/WebCore/css/values/filter-effects/CSSBrightnessFunction.h
A Source/WebCore/css/values/filter-effects/CSSContrastFunction.h
A Source/WebCore/css/values/filter-effects/CSSDropShadowFunction.h
A Source/WebCore/css/values/filter-effects/CSSFilterFunction.h
A Source/WebCore/css/values/filter-effects/CSSFilterFunctionDescriptor.h
A Source/WebCore/css/values/filter-effects/CSSFilterProperty.h
A Source/WebCore/css/values/filter-effects/CSSFilterReference.cpp
A Source/WebCore/css/values/filter-effects/CSSFilterReference.h
A Source/WebCore/css/values/filter-effects/CSSGrayscaleFunction.h
A Source/WebCore/css/values/filter-effects/CSSHueRotateFunction.h
A Source/WebCore/css/values/filter-effects/CSSInvertFunction.h
A Source/WebCore/css/values/filter-effects/CSSOpacityFunction.h
A Source/WebCore/css/values/filter-effects/CSSSaturateFunction.h
A Source/WebCore/css/values/filter-effects/CSSSepiaFunction.h
M Source/WebCore/css/values/primitives/CSSPrimitiveNumericRange.h
M Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+CSSValueVisitation.h
M Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+ComputedStyleDependencies.h
M Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+Serialization.h
M Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes.h
A Source/WebCore/css/values/text-decoration/CSSTextShadow.h
A Source/WebCore/css/values/text-decoration/CSSTextShadowProperty.h
M Source/WebCore/editing/Editor.cpp
M Source/WebCore/editing/FontAttributeChanges.cpp
M Source/WebCore/editing/cocoa/HTMLConverter.mm
M Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
M Source/WebCore/rendering/BackgroundPainter.cpp
M Source/WebCore/rendering/BackgroundPainter.h
M Source/WebCore/rendering/EllipsisBoxPainter.cpp
M Source/WebCore/rendering/TextDecorationPainter.cpp
M Source/WebCore/rendering/TextPainter.cpp
M Source/WebCore/rendering/style/RenderStyle.cpp
M Source/WebCore/rendering/style/ShadowData.cpp
M Source/WebCore/rendering/style/ShadowData.h
M Source/WebCore/rendering/style/StyleFilterImage.cpp
R Source/WebCore/style/FilterOperationsBuilder.cpp
R Source/WebCore/style/FilterOperationsBuilder.h
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/values/StyleValueTypes.h
A Source/WebCore/style/values/backgrounds/StyleBoxShadow.cpp
A Source/WebCore/style/values/backgrounds/StyleBoxShadow.h
M Source/WebCore/style/values/color/StyleColor.h
A Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.cpp
A Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.h
A Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.h
A Source/WebCore/style/values/filter-effects/StyleBlurFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleBlurFunction.h
A Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.h
A Source/WebCore/style/values/filter-effects/StyleContrastFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleContrastFunction.h
A Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.h
A Source/WebCore/style/values/filter-effects/StyleFilterProperty.cpp
A Source/WebCore/style/values/filter-effects/StyleFilterProperty.h
A Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.h
A Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.h
A Source/WebCore/style/values/filter-effects/StyleInvertFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleInvertFunction.h
A Source/WebCore/style/values/filter-effects/StyleOpacityFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleOpacityFunction.h
A Source/WebCore/style/values/filter-effects/StyleSaturateFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleSaturateFunction.h
A Source/WebCore/style/values/filter-effects/StyleSepiaFunction.cpp
A Source/WebCore/style/values/filter-effects/StyleSepiaFunction.h
A Source/WebCore/style/values/primitives/StyleNone.cpp
M Source/WebCore/style/values/primitives/StyleNone.h
M Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Blending.h
M Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.cpp
M Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.h
M Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Evaluation.h
A Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.cpp
A Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.h
M Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes.h
A Source/WebCore/style/values/text-decoration/StyleTextShadow.cpp
A Source/WebCore/style/values/text-decoration/StyleTextShadow.h
Log Message:
-----------
Convert shadow and filter types to strongly typed CSS values
https://bugs.webkit.org/show_bug.cgi?id=283921
Reviewed by NOBODY
Converts the shadow and filter types to strongly typed CSS values.
Formerly, CSS shadows for `box-shadow` and `text-shadow` use the
same representation for CSS, a CSSValueList of CSSShadowValues.
Now, they have been split, to make it clear that `text-shadow`
supports a different set of functionality than `box-shadow`.
Similarly, CSS filters for both `filter` and `-apple-color-filter`
use the same representation, a CSSValueList of CSSFunctionValues.
Now they too have been split to make it clear that the set of
filter functions supported is different for the different properties.
Unlike previous conversions, this one focuses primarily on the
CSS side, as the representations used for shadows and filters
in style system are a bit tangled. However, structure on the
style side is put in place, and some modest wins are present,
such as the shrinking of the ShadowData type due to use of the new
Style::Length types.
To maintain backwards compatibility, extra plumbing was required
to construct DeprecatedCSSOMValues matching the shipping types.
* Source/WTF/wtf/StdLibExtras.h:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/SaferCPPExpectations/RefCntblBaseVirtualDtorExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
* Source/WebCore/css/CSSAppleColorFilterPropertyValue.cpp: Added.
* Source/WebCore/css/CSSAppleColorFilterPropertyValue.h: Added.
* Source/WebCore/css/CSSBoxShadowPropertyValue.cpp: Added.
* Source/WebCore/css/CSSBoxShadowPropertyValue.h: Added.
* Source/WebCore/css/CSSFilterImageValue.cpp:
* Source/WebCore/css/CSSFilterImageValue.h:
* Source/WebCore/css/CSSFilterPropertyValue.cpp: Added.
* Source/WebCore/css/CSSFilterPropertyValue.h: Added.
* Source/WebCore/css/CSSGradientValue.cpp:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSShadowValue.cpp: Removed.
* Source/WebCore/css/CSSShadowValue.h: Removed.
* Source/WebCore/css/CSSTextShadowPropertyValue.cpp: Added.
* Source/WebCore/css/CSSTextShadowPropertyValue.h: Added.
* Source/WebCore/css/CSSValue.cpp:
* Source/WebCore/css/CSSValue.h:
* Source/WebCore/css/CSSValuePool.cpp:
* Source/WebCore/css/CSSValuePool.h:
* Source/WebCore/css/ComputedStyleExtractor.cpp:
* Source/WebCore/css/ComputedStyleExtractor.h:
* Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.cpp: Added.
* Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.h: Added.
* Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.cpp: Added.
* Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.h: Added.
* Source/WebCore/css/DeprecatedCSSOMTextShadowValue.cpp: Added.
* Source/WebCore/css/DeprecatedCSSOMTextShadowValue.h: Added.
* Source/WebCore/css/DeprecatedCSSOMValue.h:
* Source/WebCore/css/DeprecatedCSSOMValueList.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Background.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+MetaConsumerDefinitions.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+TextDecoration.cpp:
* Source/WebCore/css/typedom/CSSStyleValueFactory.cpp:
* Source/WebCore/css/values/CSSValueAggregates.h:
* Source/WebCore/css/values/CSSValueTypes.h:
* Source/WebCore/css/values/backgrounds/CSSBoxShadow.h: Added.
* Source/WebCore/css/values/backgrounds/CSSBoxShadowProperty.h: Added.
* Source/WebCore/css/values/color/CSSColor.h:
* Source/WebCore/css/values/filter-effects/CSSAppleColorFilterProperty.h: Added.
* Source/WebCore/css/values/filter-effects/CSSAppleInvertLightnessFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSBlurFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSBrightnessFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSContrastFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSDropShadowFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSFilterFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSFilterFunctionDescriptor.h: Renamed from Source/WebCore/css/CSSFilterFunctionDescriptor.h.
* Source/WebCore/css/values/filter-effects/CSSFilterProperty.h: Added.
* Source/WebCore/css/values/filter-effects/CSSFilterReference.cpp: Added.
* Source/WebCore/css/values/filter-effects/CSSFilterReference.h: Added.
* Source/WebCore/css/values/filter-effects/CSSGrayscaleFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSHueRotateFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSInvertFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSOpacityFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSSaturateFunction.h: Added.
* Source/WebCore/css/values/filter-effects/CSSSepiaFunction.h: Added.
* Source/WebCore/css/values/primitives/CSSPrimitiveNumericRange.h:
* Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+CSSValueVisitation.h:
* Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+ComputedStyleDependencies.h:
* Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+Serialization.h:
* Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes.h:
* Source/WebCore/css/values/text-decoration/CSSTextShadow.h: Added.
* Source/WebCore/css/values/text-decoration/CSSTextShadowProperty.h: Added.
* Source/WebCore/editing/Editor.cpp:
* Source/WebCore/editing/FontAttributeChanges.cpp:
* Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:
* Source/WebCore/rendering/BackgroundPainter.cpp:
* Source/WebCore/rendering/BackgroundPainter.h:
* Source/WebCore/rendering/EllipsisBoxPainter.cpp:
* Source/WebCore/rendering/TextDecorationPainter.cpp:
* Source/WebCore/rendering/TextPainter.cpp:
* Source/WebCore/rendering/style/RenderStyle.cpp:
* Source/WebCore/rendering/style/ShadowData.cpp:
* Source/WebCore/rendering/style/ShadowData.h:
* Source/WebCore/rendering/style/StyleFilterImage.cpp:
* Source/WebCore/style/FilterOperationsBuilder.cpp: Removed.
* Source/WebCore/style/StyleBuilderConverter.h:
* Source/WebCore/style/StyleBuilderCustom.h:
* Source/WebCore/style/StyleBuilderState.cpp:
* Source/WebCore/style/StyleBuilderState.h:
* Source/WebCore/style/values/StyleValueTypes.h:
* Source/WebCore/style/values/backgrounds/StyleBoxShadow.cpp: Added.
* Source/WebCore/style/values/backgrounds/StyleBoxShadow.h: Added.
* Source/WebCore/style/values/color/StyleColor.h:
* Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.h: Added.
* Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleBlurFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleBlurFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleContrastFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleContrastFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleFilterProperty.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleFilterProperty.h: Added.
* Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleInvertFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleInvertFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleOpacityFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleOpacityFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleSaturateFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleSaturateFunction.h: Added.
* Source/WebCore/style/values/filter-effects/StyleSepiaFunction.cpp: Added.
* Source/WebCore/style/values/filter-effects/StyleSepiaFunction.h: Added.
* Source/WebCore/style/values/primitives/StyleNone.cpp: Added.
* Source/WebCore/style/values/primitives/StyleNone.h:
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Blending.h:
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.cpp:
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.h:
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Evaluation.h:
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.cpp: Added
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.h: Added.
* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes.h:
* Source/WebCore/style/values/text-decoration/StyleTextShadow.cpp: Added.
* Source/WebCore/style/values/text-decoration/StyleTextShadow.h: Added
Canonical link: https://commits.webkit.org/287509@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list