Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9cb4665f2d67fb34a3580e1513d1cab547735bcb
https://github.com/WebKit/WebKit/commit/9cb4665f2d67fb34a3580e1513d1cab547735bcb
Author: Sam Weinig <[email protected]>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/InteractionRegion.cpp
M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp
M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h
M Source/WebCore/platform/graphics/GraphicsContext.cpp
M Source/WebCore/platform/graphics/GraphicsContext.h
M Source/WebCore/platform/graphics/Image.cpp
M Source/WebCore/platform/graphics/Image.h
M Source/WebCore/platform/graphics/ImagePaintingOptions.h
M Source/WebCore/platform/graphics/ImageTypes.h
M Source/WebCore/platform/graphics/NullGraphicsContext.h
M Source/WebCore/rendering/BackgroundPainter.cpp
M Source/WebCore/rendering/NinePieceImagePainter.cpp
M Source/WebCore/rendering/RenderImage.cpp
M Source/WebCore/rendering/RenderImage.h
M Source/WebCore/rendering/RenderImageResource.cpp
M Source/WebCore/rendering/RenderImageResource.h
M Source/WebCore/rendering/shapes/LayoutShape.cpp
M Source/WebCore/rendering/shapes/LayoutShape.h
M Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp
M Source/WebCore/rendering/svg/RenderSVGImage.cpp
M Source/WebCore/rendering/svg/RenderSVGImage.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.h
A Source/WebCore/style/values/images/StyleImageDrawingExtras.cpp
A Source/WebCore/style/values/images/StyleImageDrawingExtras.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/StyleCrossfadeImage.cpp
M Source/WebCore/style/values/images/kinds/StyleCursorImage.cpp
M Source/WebCore/style/values/images/kinds/StyleCursorImage.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
M Source/WebCore/style/values/primitives/StyleDeclarationValue.h
M Source/WebCore/svg/graphics/SVGImage.cpp
M Source/WebCore/svg/graphics/SVGImage.h
M Source/WebCore/svg/graphics/SVGImageCache.cpp
M Source/WebCore/svg/graphics/SVGImageForContainer.cpp
M Source/WebCore/svg/graphics/SVGImageForContainer.h
M
Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp
Log Message:
-----------
[Image Redux] Add ability for callers to pass size and extras to SVG images
(part 1)
https://bugs.webkit.org/show_bug.cgi?id=325507
Reviewed by Simon Fraser.
The ultimate goal of this subset of the Image Redux changes is to remove
SVGImageCache and
SVGImageForContainer.
Currently, when painting an SVG image, a renderer pushes the size it resolves
for the image,
along with a bunch of additional state like link-parameters, into
SVGImageCache, using the
SVGImageForContainer wrapper that comes back to paint the image.
In this chance, only the callers are being changed. Callers still push into the
SVGImageCache,
and still use the SVGImageForContainer wrapper, but also now pass the state to
the draw call.
Follow up changes will remove the push to the cache and use of
SVGImageForContainer.
To get style level information to SVGImage without a layering violation,
Style::ImageDrawingExtras
is introduced to allow packaging Style::LinkParameters as well as the URL with
the fragment.
SVGImage does a dynamicDowncast to access these.
Rather than putting ENABLE(AX_CUSTOM_COLOR_MODE) in Style::ImageDrawingExtras,
it makes more
sense for it to be added to ImagePaintingOptions as it doesn't require and
Style level types.
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/InteractionRegion.cpp:
* Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp:
* Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h:
* Source/WebCore/platform/graphics/GraphicsContext.cpp:
* Source/WebCore/platform/graphics/GraphicsContext.h:
* Source/WebCore/platform/graphics/Image.cpp:
* Source/WebCore/platform/graphics/Image.h:
* Source/WebCore/platform/graphics/ImagePaintingOptions.h:
* Source/WebCore/platform/graphics/ImageTypes.h:
* Source/WebCore/platform/graphics/NullGraphicsContext.h:
* Source/WebCore/rendering/BackgroundPainter.cpp:
* Source/WebCore/rendering/NinePieceImagePainter.cpp:
* Source/WebCore/rendering/RenderImage.cpp:
* Source/WebCore/rendering/RenderImage.h:
* Source/WebCore/rendering/RenderImageResource.cpp:
* Source/WebCore/rendering/RenderImageResource.h:
* Source/WebCore/rendering/shapes/LayoutShape.cpp:
* Source/WebCore/rendering/shapes/LayoutShape.h:
* Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp:
* Source/WebCore/rendering/svg/RenderSVGImage.cpp:
* Source/WebCore/rendering/svg/RenderSVGImage.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.cpp:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.h:
* Source/WebCore/style/values/images/StyleImageDrawingExtras.h: Added.
* Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCachedImage.h:
* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCursorImage.cpp:
* Source/WebCore/style/values/images/kinds/StyleCursorImage.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/primitives/StyleDeclarationValue.h:
* Source/WebCore/svg/graphics/SVGImage.cpp:
* Source/WebCore/svg/graphics/SVGImage.h:
* Source/WebCore/svg/graphics/SVGImageCache.cpp:
* Source/WebCore/svg/graphics/SVGImageForContainer.cpp:
* Source/WebCore/svg/graphics/SVGImageForContainer.h:
* Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp:
Canonical link: https://commits.webkit.org/322161@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications