servo/components/layout_2020
Martin Robinson 59f5414ca8
Split line layout into two phases (#30089)
In the first phase, we gather LineItems and then when we have enough to
form a line we turn them into Fragments. This will make it possible to
more simply implement `vertical-align` and `text-align: justify` because
we need to measure the different aspects of the candidate line and then
produce a Fragments.

This is a general refactor of the way that inline layout works, so comes
with some progressions. In addition there are some new failures.

New failures:

Some tests are now failing because only the test or reference is getting
proper line height when it wasn't before. These should be fixed in a
followup change that properly calculate line-height in more cases:

 - /_mozilla/css/list_style_position_a.html
 - /css/CSS2/floats/float-no-content-beside-001.html
 - /css/css-content/pseudo-element-inline-box.html
 - /css/css-flexbox/flexbox_flex-none-wrappable-content.html

Some tests are now failing because floats are now placed properly, but
are no longer in their inline box stacking contexts. These will be fixed
by a followup change which properly parents them:

- /css/filter-effects/filtered-inline-applies-to-float.html.ini
- /css/css-color/inline-opacity-float-child.html.ini

One test is failing due to floating point precision errors:

- /css/CSS2/floats-clear/floats-141.xht.ini

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-08-11 07:19:50 +00:00
..
display_list Use explicit WebRender hit test items in legacy layout (#29981) 2023-07-17 09:11:09 +00:00
flexbox Make fewer PositioningContexts when descending (#30061) 2023-08-03 08:51:27 +00:00
flow Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
fragment_tree Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
tests Fix failing unit test due to overflow (#30074) 2023-08-08 11:29:14 +00:00
Cargo.toml Add initial support for css-text-3 whitespace handling (#29828) 2023-07-20 18:34:31 +00:00
cell.rs Implement Default for ArcRefCell 2020-03-17 11:15:17 -07:00
context.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00
dom.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00
dom_traversal.rs Make the choice of layout runtime setting 2023-07-06 14:49:24 +02:00
formatting_contexts.rs Resolve cyclic margin and padding percentages against zero (#30085) 2023-08-10 11:38:44 +00:00
geom.rs Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
layout_debug.rs Layout 2020: Move all Fragment code to the fragment_tree directory 2023-06-04 18:12:11 +02:00
lib.rs Layout 2020: Move all Fragment code to the fragment_tree directory 2023-06-04 18:12:11 +02:00
lists.rs Make the choice of layout runtime setting 2023-07-06 14:49:24 +02:00
positioned.rs Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
query.rs Try to use WebRender types more 2023-07-10 17:35:50 +02:00
replaced.rs Layout 2020: Move all Fragment code to the fragment_tree directory 2023-06-04 18:12:11 +02:00
sizing.rs Resolve cyclic margin and padding percentages against zero (#30085) 2023-08-10 11:38:44 +00:00
style_ext.rs Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
traversal.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00