Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a60246ff6a2efda4643bff69a44dc873094415cf
https://github.com/WebKit/WebKit/commit/a60246ff6a2efda4643bff69a44dc873094415cf
Author: Ian Gower <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M LayoutTests/fast/repaint/out-of-flow-inside-relative-inline-expected.txt
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
Log Message:
-----------
Repaint artifacts on techmeme.com after returning to the page with the back
button
https://bugs.webkit.org/show_bug.cgi?id=320674
rdar://161198753
Reviewed by Simon Fraser.
Showing one preview popover and hiding another land in the same render tree
update. Attaching the new out-of-flow box discards the paragraph's line layout,
so when the old box is torn down RenderInline::offsetForInFlowPositionedInline
can no longer find the anchor inline's first line box and falls back to a zero
offset. The repaint is issued at the right size but the wrong origin, leaving
the pixels the box painted on screen.
Repaint using the rect the layer cached while the geometry was still resolvable.
Limited to tearing down an out-of-flow box whose container is an in-flow
positioned inline.
Follow-ups: offsetForInFlowPositionedInline cannot signal failure, since
computeVisibleRectsInContainer already uses std::nullopt for "nothing to
repaint"; and invalidateLineLayout's InsertionOrRemoval path lacks the
InlineWalker repaint that ContentChange does before dropping line layout.
out-of-flow-inside-relative-inline.html covers this and had the displaced rect
baked into its baseline, so its "PASS if no red" was never actually met.
Rebaselined.
* LayoutTests/fast/repaint/out-of-flow-inside-relative-inline-expected.txt:
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::repaintAndMarkContainingBlockDirtyBeforeTearDown):
Canonical link: https://commits.webkit.org/318277@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications