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

Reply via email to