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

Reply via email to