Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d183e4fe4bcd3f33ca348129099c1d60e6361965
      
https://github.com/WebKit/WebKit/commit/d183e4fe4bcd3f33ca348129099c1d60e6361965
  Author: Simon Fraser <simon.fra...@apple.com>
  Date:   2025-01-20 (Mon, 20 Jan 2025)

  Changed paths:
    A LayoutTests/compositing/overflow/outline-paint-phases-expected.html
    A LayoutTests/compositing/overflow/outline-paint-phases.html
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h
    M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  -----------
  REGRESSION (286055@main): Relative-positioned input elements in scroll areas 
don't render outlines
https://bugs.webkit.org/show_bug.cgi?id=286002
rdar://142995142

Reviewed by Alan Baradlay.

286055@main changed the paint phases in overflow scroll in such a way that we 
never painted
outlines in RenderLayers where the `PaintingOverflowContents` flag was true. 
This flag is set
for a layer with overflow scrolling, and all its descendent layers.

The `shouldPaintOutline()` lambda returns false if `PaintingOverflowContents` 
is set, with
the intention of avoid the double-painting of outlines on both the outer 
primary layer
of a scroller, and its inner scrolled contents layer. However, we need to 
ensure that
we do paint outlines on child RenderLayers.

To fix this, introduce a `PaintingOverflowContentsRoot` flag that is set only 
when painting
from the scrolled contents GraphicsLayer, and then cleared when RenderLayer 
painting traverses
to descendants.

* LayoutTests/compositing/overflow/outline-paint-phases-expected.html: Added.
* LayoutTests/compositing/overflow/outline-paint-phases.html: Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintSVGResourceLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintFlagsForLayer const):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to