Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7cc28df27fbedfbec3e9a270f7c88e496db98636
      
https://github.com/WebKit/WebKit/commit/7cc28df27fbedfbec3e9a270f7c88e496db98636
  Author: Alan Baradlay <[email protected]>
  Date:   2023-04-14 (Fri, 14 Apr 2023)

  Changed paths:
    A LayoutTests/fast/inline/inline-box-invalidation-repaint-crash-expected.txt
    A LayoutTests/fast/inline/inline-box-invalidation-repaint-crash.html
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  [IFC] Repaint may be issued on freshly inserted renderer
https://bugs.webkit.org/show_bug.cgi?id=255430
<rdar://107979394>

Reviewed by Antti Koivisto.

1. Content mutation triggers line layout codepath invalidation 
(RenderBlockFlow::invalidateLineLayoutPath).
2. Each invalidation issues repaint on the block subtree.
3. Repaint normally consults renderers for geometry. However in case of inline 
boxes (RenderInline)
the enclosing geometry is collected by walking the associated inline structures.
4. Subsequent mutations could lead to issuing a repaint on a freshly 
(previously) inserted RenderInline.

Legacy codepath handles this case by returning an empty LayoutRect too.

* LayoutTests/fast/inline/inline-box-invalidation-repaint-crash-expected.txt: 
Added.
* LayoutTests/fast/inline/inline-box-invalidation-repaint-crash.html: Added.
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::linesVisualOverflowBoundingBox const):

Canonical link: https://commits.webkit.org/262957@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to