Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 329210aed6c43ed133606a4e068ff4a9571968fd
https://github.com/WebKit/WebKit/commit/329210aed6c43ed133606a4e068ff4a9571968fd
Author: Vitaly Dyachkov <[email protected]>
Date: 2026-10-12 (Mon, 12 Oct 2026)
Changed paths:
A
LayoutTests/compositing/clipping/descendant-clipping-layer-added-repositions-clipped-child-expected.html
A
LayoutTests/compositing/clipping/descendant-clipping-layer-added-repositions-clipped-child.html
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
Composited children are misplaced when their compositing ancestor gains or
loses a child clipping layer
https://bugs.webkit.org/show_bug.cgi?id=327003
Reviewed by Simon Fraser.
When a layer's configuration update adds or removes its child clipping
layer, its composited children get reparented under the new
`parentForSublayers()`, but their geometry is not recomputed. Their
positions stay relative to the previous parent layer, so they are drawn
offset by the clipping layer's offset.
This bug was exposed by 320647@main, which was reverted in 321300@main:
with it, the blinking caret of the email verification code input on
https://x.com jumps out of its box. Before that change, the caret's
accelerated animation restyled it on each iteration, which recomputed
its geometry and hid the bug. This fix is needed before relanding it.
Test:
compositing/clipping/descendant-clipping-layer-added-repositions-clipped-child.html
*
LayoutTests/compositing/clipping/descendant-clipping-layer-added-repositions-clipped-child-expected.html:
Added.
*
LayoutTests/compositing/clipping/descendant-clipping-layer-added-repositions-clipped-child.html:
Added.
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
Canonical link: https://commits.webkit.org/323487@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications