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

Reply via email to