So far, Servo’s layout implementation is divided into three parallel
tree traversals: intrinsic inline-size calculation (bottom up), used
inline-size assignment (top down) and block-size assignment (bottom up).
Each traversal only depends on results from the previous one.
(Inline-size and block-size and width and height respectively in
horizontal text such as English.)
Now that we’re adding CSS Writing Modes, there is a problem with
orthogonal flows (vertical text where the parent is horizontal, or the
other way around.) Normally the intrinsic inline-size of a block is
based on the intrinsic inline-size of its children. But if one of the
children is an orthogonal flow, it’s based on that child’s intrinsic
block-size instead.
Now, the details of intrinsic block-size are not that well-defined in
the spec [1] right now, but it probably involves doing actual layout all
the way through, with a couple of different available inline sizes.
[1] http://dev.w3.org/csswg/css-sizing/#block-intrinsic
This means using results (for a subtree) of our third traversal in the
first traversal. Can we do that without compromising parallel layout?
--
Simon Sapin
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo