Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7e67352d773dac9253ee2516fe90b131bb411580
      
https://github.com/WebKit/WebKit/commit/7e67352d773dac9253ee2516fe90b131bb411580
  Author: Nikolas Zimmermann <[email protected]>
  Date:   2026-06-05 (Fri, 05 Jun 2026)

  Changed paths:
    M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp
    M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h

  Log Message:
  -----------
  [GTK][WPE] Skia Compositor: compositing debug borders are not painted properly
https://bugs.webkit.org/show_bug.cgi?id=316330

Reviewed by Carlos Garcia Campos.

Enabling "Show compositing borders" in Web Inspector had no visible effect on
the page in the Skia compositor: borders only showed in the Layers panel preview
(a separate inspector snapshot path).

SkiaCompositingLayer::paint() ran a follow-up tree walk in 
PaintMode::DebugIndicators
to draw layer borders and repaint counters, but that walk only happened when the
scene root layer itself carried indicators (hasDebugIndicators()), which it 
never
does, so the pass was always skipped. Even when forced to run, that design draws
only strokes after all content has been painted, so a border belonging to a 
layer
hidden behind an opaque layer (e.g. a modal dialog) bleeds through on top of it.

Drop the separate DebugIndicators pass and instead draw the indicators inline in
the single Paint walk, at the tail of recursivePaint() - after the layer's own
content, filters and masks have been composited into the parent, but still in 
tree
order. Layers painted on top then occlude the indicators of the layers they 
cover,
while the indicators still sit above each layer's own effects.

paintDebugIndicators() now establishes the layer transform itself (it previously
relied on paintSelf() having concatenated it) and keeps paintSelf()'s visibility
guard so the set of layers that get a border is unchanged. PaintMode loses its 
now
unused DebugIndicators value - the remaining single-value mode plumbing is kept 
as
preparation for the planned SkNoDrawCanvas damage walk.

* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:
(WebCore::SkiaCompositingLayer::paint):
(WebCore::SkiaCompositingLayer::paintSelf):
(WebCore::SkiaCompositingLayer::paintDebugIndicators):
(WebCore::SkiaCompositingLayer::recursivePaint):
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h:

Canonical link: https://commits.webkit.org/314621@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to