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