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