Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4cf50f20a251fac3c00dceccafc2a60f394aae49
      
https://github.com/WebKit/WebKit/commit/4cf50f20a251fac3c00dceccafc2a60f394aae49
  Author: Sam Weinig <[email protected]>
  Date:   2026-10-01 (Thu, 01 Oct 2026)

  Changed paths:
    A LayoutTests/css3/images/cross-fade-background-size-scaled-expected.html
    A LayoutTests/css3/images/cross-fade-background-size-scaled.html
    A LayoutTests/css3/images/image-set-cross-fade-border-image-expected.html
    A LayoutTests/css3/images/image-set-cross-fade-border-image.html
    A LayoutTests/css3/images/image-set-cross-fade-tiled-expected.html
    A LayoutTests/css3/images/image-set-cross-fade-tiled.html
    A LayoutTests/css3/images/image-set-gradient-tiled-expected.html
    A LayoutTests/css3/images/image-set-gradient-tiled.html
    A LayoutTests/fast/shapes/shape-outside-image-sizing-expected.txt
    A LayoutTests/fast/shapes/shape-outside-image-sizing.html
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/ObjectSizeNegotiation.h
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/BorderPainter.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.h
    M Source/WebCore/rendering/RenderListOutsideMarker.cpp
    M Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp
    A Source/WebCore/style/values/backgrounds/StyleBackgroundImageSizing.cpp
    A Source/WebCore/style/values/backgrounds/StyleBackgroundImageSizing.h
    A Source/WebCore/style/values/backgrounds/StyleBorderImageSizing.h
    M Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleCachedImage.h
    M Source/WebCore/style/values/images/kinds/StyleCanvasImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleCanvasImage.h
    M Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.h
    M Source/WebCore/style/values/images/kinds/StyleFilterImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleFilterImage.h
    M Source/WebCore/style/values/images/kinds/StyleGeneratedImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleGeneratedImage.h
    M Source/WebCore/style/values/images/kinds/StyleImage.h
    M Source/WebCore/style/values/images/kinds/StyleMultiImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleMultiImage.h
    A Source/WebCore/style/values/lists/StyleListStyleImageSizing.h
    A Source/WebCore/style/values/masking/StyleMaskBorderSizing.h
    A Source/WebCore/style/values/masking/StyleMaskImageSizing.cpp
    A Source/WebCore/style/values/masking/StyleMaskImageSizing.h
    A Source/WebCore/style/values/shapes/StyleShapeOutsideSizing.h

  Log Message:
  -----------
  [Image Redux] Negotiate the size of CSS property images via 
Style::Image::naturalDimensions()
https://bugs.webkit.org/show_bug.cgi?id=325712

Reviewed by Antti Koivisto.

Adds Style::Image::naturalDimensions(), which reports the dimensions an image 
has of its own before
any box is considered. With that in place, we also move images used by CSS 
properties (like
background-image, mask-image, border-image, etc.) onto negotiating their 
concrete object size from
it. The old sizing API (imageSize(),  computeIntrinsicDimensions() and friends) 
stays for the
callers not yet moved.

To ensure some of the weird edge-cases were right, I added a few test cases.

Tests: css3/images/cross-fade-background-size-scaled.html
       css3/images/image-set-cross-fade-border-image.html
       css3/images/image-set-cross-fade-tiled.html
       css3/images/image-set-gradient-tiled.html
       fast/shapes/shape-outside-image-sizing.html
* LayoutTests/css3/images/cross-fade-background-size-scaled-expected.html: 
Added.
* LayoutTests/css3/images/cross-fade-background-size-scaled.html: Added.
* LayoutTests/css3/images/image-set-cross-fade-border-image-expected.html: 
Added.
* LayoutTests/css3/images/image-set-cross-fade-border-image.html: Added.
* LayoutTests/css3/images/image-set-cross-fade-tiled-expected.html: Added.
* LayoutTests/css3/images/image-set-cross-fade-tiled.html: Added.
* LayoutTests/css3/images/image-set-gradient-tiled-expected.html: Added.
* LayoutTests/css3/images/image-set-gradient-tiled.html: Added.
* LayoutTests/fast/shapes/shape-outside-image-sizing-expected.txt: Added.
* LayoutTests/fast/shapes/shape-outside-image-sizing.html: Added.
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/ObjectSizeNegotiation.h:
* Source/WebCore/rendering/BackgroundPainter.cpp:
* Source/WebCore/rendering/BorderPainter.cpp:
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
* Source/WebCore/rendering/RenderBoxModelObject.h:
* Source/WebCore/rendering/RenderListOutsideMarker.cpp:
* Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp:
* Source/WebCore/style/values/backgrounds/StyleBackgroundImageSizing.cpp: Added.
* Source/WebCore/style/values/backgrounds/StyleBackgroundImageSizing.h: Added.
* Source/WebCore/style/values/backgrounds/StyleBorderImageSizing.h: Added.
* Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCachedImage.h:
* Source/WebCore/style/values/images/kinds/StyleCanvasImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCanvasImage.h:
* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.h:
* Source/WebCore/style/values/images/kinds/StyleFilterImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleFilterImage.h:
* Source/WebCore/style/values/images/kinds/StyleGeneratedImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleGeneratedImage.h:
* Source/WebCore/style/values/images/kinds/StyleImage.h:
* Source/WebCore/style/values/images/kinds/StyleMultiImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleMultiImage.h:
* Source/WebCore/style/values/lists/StyleListStyleImageSizing.h: Added.
* Source/WebCore/style/values/masking/StyleMaskBorderSizing.h: Added.
* Source/WebCore/style/values/masking/StyleMaskImageSizing.cpp: Added.
* Source/WebCore/style/values/masking/StyleMaskImageSizing.h: Added.
* Source/WebCore/style/values/shapes/StyleShapeOutsideSizing.h: Added.

Canonical link: https://commits.webkit.org/322392@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to