Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Never put an "outside" list-item marker in an anonymous block.
If a list item has an anonymous block inside (for whatever reason), an "outside" list item marker is yet to be put on the outside. Normally, the list item marker is created and attached when the list item is attached, before any regular children are added, so there'll never be an anonymous child block. However, if list-style-type is 'none' initially, there'll be no marker. If list-style-type then is changed later on, we need to create the marker at that point, and then there may be an anonymous block to worry about. BlockLayoutAlgorithm::PositionOrPropagateListMarker() will always add the marker fragment as a direct child of the list item fragment, and if this doesn't match the actual layout structure (there's an anonymous block there), pre-paint will fail when performing a fragment-accompanied LayoutObject tree walk, which is the case for block fragmentation. PrePaintTreeWalk::WalkLayoutObjectChildren() won't find the marker, because it's searching for it inside the anonymous block fragment. But it's a child of the list item fragment. Bug: 1510614 Change-Id: I5b63303ce225bc5c89f3ccc52eae41a600a64d8c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5115680 Reviewed-by: Koji Ishii <[email protected]> Commit-Queue: Morten Stenshorne <[email protected]> Cr-Commit-Position: refs/heads/main@{#1236576}
- Loading branch information