[webkit-changes] [WebKit/WebKit] d01779: Do not repaint newly moved inline box

Alan Baradlay noreply at github.com
Mon Mar 18 07:43:36 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d017799bfec158028d9d0678477b3c42db76ed6e
      https://github.com/WebKit/WebKit/commit/d017799bfec158028d9d0678477b3c42db76ed6e
  Author: Alan Baradlay <zalan at apple.com>
  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 at 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


More information about the webkit-changes mailing list