Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d017799bfec158028d9d0678477b3c42db76ed6e
https://github.com/WebKit/WebKit/commit/d017799bfec158028d9d0678477b3c42db76ed6e
Author: Alan Baradlay <[email protected]>
Date: 2024-03-18 (Mon, 18 Mar 2024)
Changed paths:
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
Log Message:
-----------
Do not repaint newly moved inline box
https://bugs.webkit.org/show_bug.cgi?id=267141
rdar://120555470
Reviewed by Antti Koivisto.
1. Repaint needs uptodate geometry information to compute the damaged area
2. Whenever we invalidate the line layout path, we lose all geometry
information so a full repaint is being issued on the very first invalidation.
(note that there may be multiple mutations happening the same time)
This patch ensures that such repaints are _not_ issued on newly inserted
content.
Since we don't keep track of whether a particular renderer has already issued
repaint, moving renders between blocks could
potentially be repainted twice; initially when they get detached and later when
they get inserted at their new position.
Repaint issued at this later stage most likely results in incorrectly computed
damage area as all relevant geometries are
relative to the former block -and in some cases it may even trigger crashes as
we don't find associated layout/display boxes in
the new block.
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
Originally-landed-as: 272448.98@safari-7618-branch (77a82bb2bcde).
rdar://124556609
Canonical link: https://commits.webkit.org/276267@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