Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b40e43c64b5c2639ba48eaf103a6207df175c147
https://github.com/WebKit/WebKit/commit/b40e43c64b5c2639ba48eaf103a6207df175c147
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible.html
M LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations
M Source/WebCore/rendering/RenderLayerModelObject.cpp
M Source/WebCore/rendering/RenderLayerModelObject.h
M Source/WebCore/rendering/svg/RenderSVGContainer.cpp
M Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
M Source/WebCore/rendering/svg/RenderSVGImage.cpp
M Source/WebCore/rendering/svg/RenderSVGShape.cpp
M Source/WebCore/rendering/svg/RenderSVGText.cpp
Log Message:
-----------
[LBSE] Hidden <text> / <foreignObject> must still paint children overriding
'visibility: visible'
https://bugs.webkit.org/show_bug.cgi?id=326988
Reviewed by Rob Buis.
Per SVG2, 'visibility: hidden' on <text> / <foreignObject> only hides the
element itself - descendants can override it with 'visibility: visible'.
LBSE skipped the whole subtree, unlike the legacy engine.
Split shouldPaintSVGRenderer() into shouldPaintSVGLeafRenderer() and
shouldPaintSVGContainerRenderer() (used by <g> and <text>). Hidden containers
keep painting the foreground, mask and clipping mask phases, so visible
descendants are still painted, masked and clipped. <foreignObject> skips the
check, as its CSS boxes check their own visibility.
Fixes svg/batik/text/textProperties2.svg - also add new tests to specifically
cover the visibility in all scenarios, as WPT tests.
Tests:
imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content.html
imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip.html
imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible.html
*
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/extensibility/foreignObject/foreign-object-visibility-hidden-visible-content.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/render/reftests/visibility-hidden-container-mask-clip.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/svg/text/reftests/text-visibility-hidden-tspan-visible.html:
Added.
* LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::shouldPaintSVGLeafRenderer const):
(WebCore::RenderLayerModelObject::shouldPaintSVGContainerRenderer const):
(WebCore::RenderLayerModelObject::paintSVGClippingMask const):
(WebCore::RenderLayerModelObject::shouldPaintSVGRenderer const): Deleted.
* Source/WebCore/rendering/RenderLayerModelObject.h:
* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
* Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::paint):
* Source/WebCore/rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::paint):
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint):
Canonical link: https://commits.webkit.org/323563@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications