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

Reply via email to