DescriptionFix shrink-to-fit when children's writing-mode is orthogonal
This patch fixes the shrink-to-fit algorithm when descendants of the
element have orthogonal writing-mode.
Strictly speaking, as the [spec] defines, min-content width of the element
must be determined by logicalHeight of children. This would require either
"layout during preferred width calculation" or "multiple layout passes."
In most cases, however, descendants are not mixed. Since orthogonal
descendants need re-layout only when the parent's logicalHeight changes,
this patch updates logicalWidth after children are laid out but does not
re-layout descendants.
Table cells with orthogonal descendants require additional work and the
fix is not included in this CL. 001q-001x are tests for table cells.
css3/flexbox/flex-flow-margins-auto-size.html that currently expects to
fail passes with this patch: http://wkb.ug/70769
[spec]: http://dev.w3.org/csswg/css-writing-modes-3/#orthogonal-flows
BUG=410320, 359604
TEST=css3/flexbox/flex-flow-margins-auto-size.html
TEST=imported/csswg-test/css-writing-modes-3/orthogonal-parent-shrink-to-fit-001.html
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201370
Patch Set 1 #Patch Set 2 : Tests and test results updated #
Total comments: 1
Patch Set 3 : minMaxPreferredLogicalWidth moved to LayoutBlock #Patch Set 4 : Approach 2 -- no layout() #Patch Set 5 : Rebase #Patch Set 6 : Use goto instead of loop to make the diff clearer #Patch Set 7 : float tests added + cleanup a bit #
Total comments: 2
Patch Set 8 : Change goto to return false, add test cases #Patch Set 9 : Rebase #Patch Set 10 : Remove bogus assert of my own #Patch Set 11 : Rebase #Patch Set 12 : Fix nested case, add test #Patch Set 13 : Cleanup, stop using continue, tests moved to imported/csswg-test #Patch Set 14 : Limit to 2 passes + Rebase #Patch Set 15 : Rebase #Patch Set 16 : LayoutBlockFlow no longer require re-layout #Patch Set 17 : Rebase after merge conflicts #Patch Set 18 : Remove table cell case #Patch Set 19 : Resolve merge conflicts #Patch Set 20 : Rebase and TestExpectations #Patch Set 21 : Rebase #
Messages
Total messages: 27 (5 generated)
|