Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0d37fd4f8a3e6af20ad6a1e11a79f191ab8ccaa7
      
https://github.com/WebKit/WebKit/commit/0d37fd4f8a3e6af20ad6a1e11a79f191ab8ccaa7
  Author: Matt Woodrow <[email protected]>
  Date:   2025-04-28 (Mon, 28 Apr 2025)

  Changed paths:
    A 
LayoutTests/compositing/repaint/change-notselfpainting-to-scroller-expected.txt
    A LayoutTests/compositing/repaint/change-notselfpainting-to-scroller.html
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h

  Log Message:
  -----------
  REGRESSION (292627@main): Doubled text on maps.google.com.
https://bugs.webkit.org/show_bug.cgi?id=291916
<rdar://149594692>

Reviewed by Simon Fraser.

Layers that aren't self painting don't hold cached repaint rects, but they
should still hold a cached repaint container.

RenderLayer::computeRepaintRects handled this correctly, but
recursiveUpdateLayerPositions duplicates the logic but without setting the
repaint container.

Remove the duplicated path (and fix assertions appropriately) so that we instead
just call into computeRepaintRects (like we do for self-painting layers) and
have the code there handle it correctly.

Fixes the bug where a previously not-self-painting becomes self painting, and
the repaint got sent to the null cached repaint container (the view).

Testcase has a layer that becomes self painting (due to composited overflow
scrolling), and has a repaint container that isn't the view. Check the repaint
issued doesn't end up at the view.

Also extends the layer positions assertions code to dump the tree (in debug
builds), with the failing node marked, similar to how
RenderTreeNeedsLayoutChecker works.

* 
LayoutTests/compositing/repaint/change-notselfpainting-to-scroller-expected.txt:
 Added.
* LayoutTests/compositing/repaint/change-notselfpainting-to-scroller.html: 
Added.
* 
LayoutTests/svg/compositing/transform-change-repainting-viewBox-repaintRects-expected.txt:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::recursiveUpdateLayerPositions):
(WebCore::outputLayerPositionTreeRecursive):
(WebCore::showLayerPositionTree):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerWillBeRemoved):

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



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

Reply via email to