Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0edc4f619186f87c8862425f99da70e257ca8281 https://github.com/WebKit/WebKit/commit/0edc4f619186f87c8862425f99da70e257ca8281 Author: Sam Weinig <s...@webkit.org> Date: 2025-04-04 (Fri, 04 Apr 2025)
Changed paths: M LayoutTests/fast/masking/parsing-clip-path-iri-expected.txt M LayoutTests/fast/masking/parsing-clip-path-iri.html M LayoutTests/imported/w3c/web-platform-tests/svg/painting/parsing/fill-computed-expected.txt M LayoutTests/imported/w3c/web-platform-tests/svg/painting/parsing/stroke-computed-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/painting/parsing/fill-computed-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/painting/parsing/stroke-computed-expected.txt M Source/WebCore/Headers.cmake M Source/WebCore/SaferCPPExpectations/RefCntblBaseVirtualDtorExpectations M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/css/CSSCursorImageValue.cpp M Source/WebCore/css/CSSCursorImageValue.h M Source/WebCore/css/CSSCustomPropertyValue.cpp M Source/WebCore/css/CSSCustomPropertyValue.h M Source/WebCore/css/CSSFilterPropertyValue.cpp M Source/WebCore/css/CSSFontFaceSrcValue.cpp M Source/WebCore/css/CSSFontFaceSrcValue.h M Source/WebCore/css/CSSImageValue.cpp M Source/WebCore/css/CSSImageValue.h M Source/WebCore/css/CSSPrimitiveValue.cpp M Source/WebCore/css/CSSPrimitiveValue.h A Source/WebCore/css/CSSURLValue.cpp A Source/WebCore/css/CSSURLValue.h M Source/WebCore/css/CSSUnits.cpp M Source/WebCore/css/CSSUnits.h M Source/WebCore/css/CSSValue.cpp M Source/WebCore/css/CSSValue.h M Source/WebCore/css/ComputedStyleExtractor.cpp M Source/WebCore/css/ComputedStyleExtractor.h M Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.cpp M Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp M Source/WebCore/css/calc/CSSCalcTree+NumericIdentity.h M Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp M Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp M Source/WebCore/css/calc/CSSCalcTree.cpp M Source/WebCore/css/calc/CSSCalcType.cpp M Source/WebCore/css/parser/CSSParserContext.cpp M Source/WebCore/css/parser/CSSParserContext.h M Source/WebCore/css/parser/CSSPropertyParser.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+Font.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+Masking.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+Motion.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.cpp M Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.h M Source/WebCore/css/scripts/process-css-properties.py M Source/WebCore/css/typedom/CSSStyleImageValue.cpp M Source/WebCore/css/typedom/CSSStyleValueFactory.cpp M Source/WebCore/css/values/CSSValueTypes.cpp M Source/WebCore/css/values/CSSValueTypes.h R Source/WebCore/css/values/filter-effects/CSSFilterReference.cpp M Source/WebCore/css/values/filter-effects/CSSFilterReference.h A Source/WebCore/css/values/primitives/CSSURL.cpp A Source/WebCore/css/values/primitives/CSSURL.h M Source/WebCore/editing/cocoa/HTMLConverter.mm M Source/WebCore/page/ElementTargetingController.cpp M Source/WebCore/platform/graphics/filters/FilterOperation.cpp M Source/WebCore/platform/graphics/filters/FilterOperation.h M Source/WebCore/rendering/CSSFilter.cpp M Source/WebCore/rendering/PathOperation.cpp M Source/WebCore/rendering/PathOperation.h M Source/WebCore/rendering/ReferencedSVGResources.cpp M Source/WebCore/rendering/ReferencedSVGResources.h M Source/WebCore/rendering/RenderLayerFilters.cpp M Source/WebCore/rendering/RenderLayerModelObject.cpp M Source/WebCore/rendering/RenderLayerModelObject.h A Source/WebCore/rendering/style/ReferenceFilterOperation.cpp A Source/WebCore/rendering/style/ReferenceFilterOperation.h M Source/WebCore/rendering/style/SVGRenderStyle.h M Source/WebCore/rendering/style/SVGRenderStyleDefs.h M Source/WebCore/rendering/style/StyleCachedImage.cpp M Source/WebCore/rendering/style/StyleCachedImage.h M Source/WebCore/rendering/style/StyleCursorImage.cpp M Source/WebCore/rendering/style/StyleCursorImage.h M Source/WebCore/rendering/style/StyleFilterImage.cpp M Source/WebCore/rendering/style/StyleImage.h M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp M Source/WebCore/rendering/svg/legacy/SVGResources.cpp M Source/WebCore/style/StyleBuilderConverter.h M Source/WebCore/style/StyleBuilderCustom.h M Source/WebCore/style/values/StyleValueTypes.h M Source/WebCore/style/values/filter-effects/StyleFilterProperty.cpp A Source/WebCore/style/values/filter-effects/StyleFilterReference.cpp A Source/WebCore/style/values/filter-effects/StyleFilterReference.h A Source/WebCore/style/values/primitives/StyleURL.cpp A Source/WebCore/style/values/primitives/StyleURL.h M Source/WebCore/style/values/primitives/StyleUnevaluatedCalculation.cpp M Source/WebCore/svg/SVGFontFaceUriElement.cpp M Source/WebCore/svg/SVGURIReference.cpp M Source/WebCore/svg/SVGURIReference.h M Source/WebCore/svg/graphics/SVGResourceImage.cpp M Source/WebCore/svg/graphics/SVGResourceImage.h M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj Log Message: ----------- Convert URL types to strongly typed CSS/Style values https://bugs.webkit.org/show_bug.cgi?id=291045 Reviewed by Antti Koivisto and Darin Adler. Update parsing and representation of <url> productions as defined in CSS Values and Units 4 (https://www.w3.org/TR/css-values-4/#urls) to use strong value types and have consistent behavior for serialization and style building. This fixes a few WPT test failures. As URLs are no longer representable by CSSPrimitiveValue, a new CSSURLValue type is also added that wraps CSS::URL. This change allows removing a lot of unnecessary re-resolution that was going on in the image code, as the only re-resolution needed can be performed by style building. Ultimately, it would be better if we could remove that final case as well, by finding a good hook to re-parse necessary styles adopted from documents, but that can be done separately. To allow using Style::URL in ReferenceFilterOperation without a laying violation (or rather, without additional layering violations as it was already using non-platform types), ReferenceFilterOperation was moved out of platform. This matches what was done recently for DropShadowFilterOperationWithStyleColor. * LayoutTests/fast/masking/parsing-clip-path-iri-expected.txt: * LayoutTests/fast/masking/parsing-clip-path-iri.html: * LayoutTests/imported/w3c/web-platform-tests/svg/painting/parsing/fill-computed-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/svg/painting/parsing/stroke-computed-expected.txt: * Source/WebCore/Headers.cmake: * Source/WebCore/SaferCPPExpectations/RefCntblBaseVirtualDtorExpectations: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/css/CSSCursorImageValue.cpp: * Source/WebCore/css/CSSCursorImageValue.h: * Source/WebCore/css/CSSCustomPropertyValue.cpp: * Source/WebCore/css/CSSCustomPropertyValue.h: * Source/WebCore/css/CSSFilterPropertyValue.cpp: * Source/WebCore/css/CSSFontFaceSrcValue.cpp: * Source/WebCore/css/CSSFontFaceSrcValue.h: * Source/WebCore/css/CSSImageValue.cpp: * Source/WebCore/css/CSSImageValue.h: * Source/WebCore/css/CSSPrimitiveValue.cpp: * Source/WebCore/css/CSSPrimitiveValue.h: * Source/WebCore/css/CSSURLValue.cpp: Added. * Source/WebCore/css/CSSURLValue.h: Added. * Source/WebCore/css/CSSUnits.cpp: * Source/WebCore/css/CSSUnits.h: * Source/WebCore/css/CSSValue.cpp: * Source/WebCore/css/CSSValue.h: * Source/WebCore/css/ComputedStyleExtractor.cpp: * Source/WebCore/css/ComputedStyleExtractor.h: * Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.cpp: * Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp: * Source/WebCore/css/calc/CSSCalcTree+NumericIdentity.h: * Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp: * Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp: * Source/WebCore/css/calc/CSSCalcTree.cpp: * Source/WebCore/css/calc/CSSCalcType.cpp: * Source/WebCore/css/parser/CSSParserContext.cpp: * Source/WebCore/css/parser/CSSParserContext.h: * Source/WebCore/css/parser/CSSPropertyParser.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Font.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Masking.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Motion.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.h: * Source/WebCore/css/scripts/process-css-properties.py: * Source/WebCore/css/typedom/CSSStyleImageValue.cpp: * Source/WebCore/css/typedom/CSSStyleValueFactory.cpp: * Source/WebCore/css/values/CSSValueTypes.cpp: * Source/WebCore/css/values/CSSValueTypes.h: * Source/WebCore/css/values/filter-effects/CSSFilterReference.h: * Source/WebCore/css/values/primitives/CSSURL.cpp: Added. * Source/WebCore/css/values/primitives/CSSURL.h: Added. * Source/WebCore/editing/cocoa/HTMLConverter.mm: * Source/WebCore/page/ElementTargetingController.cpp: * Source/WebCore/platform/graphics/filters/FilterOperation.cpp: * Source/WebCore/platform/graphics/filters/FilterOperation.h: * Source/WebCore/rendering/CSSFilter.cpp: * Source/WebCore/rendering/PathOperation.cpp: * Source/WebCore/rendering/PathOperation.h: * Source/WebCore/rendering/ReferencedSVGResources.cpp: * Source/WebCore/rendering/ReferencedSVGResources.h: * Source/WebCore/rendering/RenderLayerFilters.cpp: * Source/WebCore/rendering/RenderLayerModelObject.cpp: * Source/WebCore/rendering/RenderLayerModelObject.h: * Source/WebCore/rendering/style/ReferenceFilterOperation.cpp: Added. * Source/WebCore/rendering/style/ReferenceFilterOperation.h: Added. * Source/WebCore/rendering/style/SVGRenderStyle.h: * Source/WebCore/rendering/style/SVGRenderStyleDefs.h: * Source/WebCore/rendering/style/StyleCachedImage.cpp: * Source/WebCore/rendering/style/StyleCachedImage.h: * Source/WebCore/rendering/style/StyleCursorImage.cpp: * Source/WebCore/rendering/style/StyleCursorImage.h: * Source/WebCore/rendering/style/StyleFilterImage.cpp: * Source/WebCore/rendering/style/StyleImage.h: * Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp: * Source/WebCore/rendering/svg/legacy/SVGResources.cpp: * Source/WebCore/style/StyleBuilderConverter.h: * Source/WebCore/style/StyleBuilderCustom.h: * Source/WebCore/style/values/StyleValueTypes.h: * Source/WebCore/style/values/filter-effects/StyleFilterProperty.cpp: * Source/WebCore/style/values/filter-effects/StyleFilterReference.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleFilterReference.h: Added. * Source/WebCore/style/values/primitives/StyleURL.cpp: Added. * Source/WebCore/style/values/primitives/StyleURL.h: Added. * Source/WebCore/style/values/primitives/StyleUnevaluatedCalculation.cpp: * Source/WebCore/svg/SVGFontFaceUriElement.cpp: * Source/WebCore/svg/SVGURIReference.cpp: * Source/WebCore/svg/SVGURIReference.h: * Source/WebCore/svg/graphics/SVGResourceImage.cpp: * Source/WebCore/svg/graphics/SVGResourceImage.h: Canonical link: https://commits.webkit.org/293295@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes