Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 39e42283edb668a4b3fc8ed7f6ed5c001e1007bf
      
https://github.com/WebKit/WebKit/commit/39e42283edb668a4b3fc8ed7f6ed5c001e1007bf
  Author: Alan Baradlay <[email protected]>
  Date:   2024-09-06 (Fri, 06 Sep 2024)

  Changed paths:
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h
    M Source/WebCore/rendering/RenderObject.cpp

  Log Message:
  -----------
  Correct the simplified repaint optimization to apply to simple, out-of-flow 
subtrees
https://bugs.webkit.org/show_bug.cgi?id=279242
<rdar://133654826>

Reviewed by Simon Fraser.

This patch disables simplified repaint (initiated by simplified layout) for 
subtrees with "normal child layout".

When inflow descendants of an out-of-flow container change (and assuming no 
other mutation happens)
1. the out-of-flow box is marked with "normal child" needs layout
2. the ancestor chain gets marked with simplified layout
(we simply turn regular layout into simplified layout when crossing out-of-flow 
boundary)

Now during repaint, we can safely skip clean subtrees but we may need to 
repaint each and every renderer within the "normal child needs layout" subtree
(as opposed to only the ones we visited during layout).

* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::recursiveUpdateLayerPositions): add extra condition back 
now that we can identify normal-flow subtrees.
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::setIsSimplifiedLayoutRootForLayerIfApplicable):
(WebCore::RenderObject::markContainingBlocksForLayout):

Canonical link: https://commits.webkit.org/283268@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