[webkit-changes] [WebKit/WebKit] e6d379: Move the selfNeedsLayout() check out of RenderElem...
Simon Fraser
noreply at github.com
Wed Nov 8 16:21:59 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e6d3796b1e083a1d5368fb8af04c28d30dec6f28
https://github.com/WebKit/WebKit/commit/e6d3796b1e083a1d5368fb8af04c28d30dec6f28
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2023-11-08 (Wed, 08 Nov 2023)
Changed paths:
M Source/WebCore/rendering/LayoutRepainter.cpp
M Source/WebCore/rendering/RenderElement.cpp
M Source/WebCore/rendering/RenderElement.h
M Source/WebCore/rendering/RenderLayer.cpp
Log Message:
-----------
Move the selfNeedsLayout() check out of RenderElement::repaintAfterLayoutIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=264434
rdar://118138171
Reviewed by Alan Baradlay.
It's surprising that `RenderElement::repaintAfterLayoutIfNeeded()` consults selfNeedsLayout(), because why would we have different
behavior for renderers that get laid out but don't have the "self" bit set? This code was added in 9388 at main to reduce repainting.
Also, there are callers of `repaintAfterLayoutIfNeeded()` outside of layout; namely RenderLayer.
So, for clarify, move the `selfNeedsLayout()` check to `LayoutRepainter::repaintAfterLayout()`, where it makes more sense to
check layout bits.
* Source/WebCore/rendering/LayoutRepainter.cpp:
(WebCore::LayoutRepainter::repaintAfterLayout):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
* Source/WebCore/rendering/RenderElement.h:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::recursiveUpdateLayerPositions):
Canonical link: https://commits.webkit.org/270412@main
More information about the webkit-changes
mailing list