[LayoutNG] Support block content in list items
The first implementation of CSS list in LayoutNG adds the logic to NGInlineLayoutAlgorithm, and supports only when content of the list item is inline level. Extending this to when list items have block level children wasn't easy. Making them as inline blocks is likely not web-compatible when floats affect part of the blocks. The most common case is nested lists, because a list is block level. This patch renders basic nested lists correctly. This patch supports list marker as an unpositioned object in NGBlockLayoutAlgorithm, similar to floats or out-of-flow objects, and positions them when it lays out the next block, relative to its first line baseline. It is much simpler than floats or out-of-flow objects, because it is contained only within the list item. The approach is still being discussed with Francois (msft) and Cathie. Also this patch still doesn't support images, and customized positioning of markers by setting padding/margin. These will be in following patches. Two tests that were incorrectly rebaselined were re-rebaselined. Some image failures turned to text failures that need manual reviews to rebaseline. Bug: 725277 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I2e7f46fc6320c6986e4894a263ef99873db2f092 Reviewed-on: https://chromium-review.googlesource.com/919443 Commit-Queue: Koji Ishii <kojii@chromium.org> Reviewed-by:Emil A Eklund <eae@chromium.org> Cr-Commit-Position: refs/heads/master@{#537584}
Showing

