Description[LayoutNG] Initial support for the 'vertical-align' property
This patch supports the 'vertical-align' property.
Positioning based on 'vertial-align' requires, depends on values:
a. Per-element positioning to support nested cases.
b. The layout size of the element.
c. The layout size of the parent element.
d. The layout size of the line box.
This patch adds NGInlineBoxState to keep track of the current inline
box. This is also used to cache information common to a box, similar to
what VerticalPositionCache does in LayoutObject.
Another struct, NGPendingPositions, keeps track of descendants that need
to be positioned when ancestor layout is done. NGInlineBoxState is
expected to be used for other prorperties, while NGPendingPositions may
be only for 'vertical-align'.
This patch passes several tests in CSS2/linebox, but their expected
files use yet to be supported properties such as inline margins or
relative positions that no tests can be marked as pass in
TestExpectations yet.
BUG=636993
Review-Url: https://codereview.chromium.org/2803433002
Cr-Commit-Position: refs/heads/master@{#465409}
Committed: https://chromium.googlesource.com/chromium/src/+/2333a26198a16f94991afa411f1066c9d4687423
Patch Set 1 #Patch Set 2 : WIP #Patch Set 3 : Fix tests #Patch Set 4 : WIP #Patch Set 5 : WIP #Patch Set 6 : WIP #Patch Set 7 : #Patch Set 8 : WIP #Patch Set 9 : WIP #Patch Set 10 : Fix tests #Patch Set 11 : #Patch Set 12 : Move NGInlineBoxState to its own file #
Total comments: 1
Patch Set 13 : Move all On*() to NGInlineLayoutStateStack #Messages
Total messages: 43 (33 generated)
|