haikuwebkit/LayoutTests/fast/css/deprecated-flexbox-auto-min...

55 lines
1.4 KiB
HTML
Raw Permalink Normal View History

Add support for min-height:auto and min-width:auto https://bugs.webkit.org/show_bug.cgi?id=88437 Reviewed by Tony Chang. Source/WebCore: Right now auto does the same thing as min-height/min-width:0. For flex-items it should be the same as min-content (followup patch). http://dev.w3.org/csswg/css3-flexbox/#min-size-auto Tests: fast/css/auto-min-size.html fast/css/deprecated-flexbox-auto-min-size.html * WebCore.order: * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return 0px for the computed value of auto. * css/CSSParser.cpp: (WebCore::CSSParser::validWidth): (WebCore): (WebCore::CSSParser::validHeight): (WebCore::CSSParser::parseValue): * css/CSSParser.h: (CSSParser): Restructure width/height parsing to reduce code duplication and make it easier to add auto as a valid min value. * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::adjustSizeConstraints): This code was unnecessarily checking intrinsicOrAuto since auto was previously not an allowed value for minWidth/minHeight. * rendering/RenderBox.cpp: (WebCore::RenderBox::computeLogicalWidthInRegion): (WebCore::RenderBox::computeLogicalWidthInRegionUsing): (WebCore::RenderBox::sizesLogicalWidthToFitContent): (WebCore::RenderBox::computeLogicalHeight): (WebCore::RenderBox::computeLogicalHeightUsing): (WebCore::RenderBox::computeContentLogicalHeightUsing): (WebCore::RenderBox::computeReplacedLogicalWidth): (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth): (WebCore::RenderBox::computeReplacedLogicalWidthUsing): (WebCore::RenderBox::computeReplacedLogicalHeight): (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight): (WebCore::RenderBox::computeReplacedLogicalHeightUsing): (WebCore::RenderBox::computePositionedLogicalWidth): (WebCore::RenderBox::computePositionedLogicalWidthUsing): (WebCore::RenderBox::computePositionedLogicalHeight): (WebCore::RenderBox::computePositionedLogicalHeightUsing): Need to pass a SizeType to all these methods so that we know if the Length we're working with is a min length since auto has a different meaning now for min lengths. * rendering/RenderBox.h: (RenderBox): * rendering/RenderDeprecatedFlexibleBox.cpp: (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex): * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): (WebCore::RenderFlexibleBox::lineBreakLength): (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::computeReplacedLogicalWidth): (WebCore::RenderReplaced::computeReplacedLogicalHeight): * rendering/RenderScrollbarPart.cpp: (WebCore::calcScrollbarThicknessUsing): (WebCore::RenderScrollbarPart::computeScrollbarWidth): (WebCore::RenderScrollbarPart::computeScrollbarHeight): * rendering/style/RenderStyle.h: Default minHeight/minWidth to auto instead of 0px. LayoutTests: * fast/css/auto-min-size-expected.txt: Added. * fast/css/auto-min-size.html: Added. * fast/css/deprecated-flexbox-auto-min-size.html: Added. * platform/chromium-linux/fast/css/deprecated-flexbox-auto-min-size-expected.txt: Added. Canonical link: https://commits.webkit.org/108743@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-10 21:45:27 +00:00
<!DOCTYPE html>
<style>
.flexbox {
display: -webkit-box;
width: 30px;
height: 30px;
}
.item {
-webkit-box-flex: 1;
width: 20px;
height: 20px;
}
.item:nth-child(1) {
background-color: salmon;
min-width: 0;
min-height: 0;
}
.item:nth-child(2) {
background-color: lightblue;
min-width: auto;
min-height: auto;
}
.item:nth-child(3) {
background-color: orange;
min-width: 30px;
min-height: 30px;
}
.inline {
display: inline-block;
width: 20px;
height: 20px;
}
.vertical {
-webkit-box-orient: vertical;
}
</style>
Move layout checking js script into LayoutTest/resources and generalize https://bugs.webkit.org/show_bug.cgi?id=91268 Reviewed by Ojan Vafai. flexbox.js contains helper scripts for verifying the size and position of nodes. I will be writing similar tests for grid, so move the js file into a location for sharing and generalize the script. * css3/flexbox/align-absolute-child.html: Change include path and call. * css3/flexbox/auto-height-dynamic.html: * css3/flexbox/columns-auto-size.html: * css3/flexbox/flex-algorithm-min-max.html: * css3/flexbox/flex-algorithm-with-margins.html: * css3/flexbox/flex-algorithm.html: * css3/flexbox/flex-align-column.html: * css3/flexbox/flex-align-end.html: * css3/flexbox/flex-align-max.html: * css3/flexbox/flex-align-percent-height.html: * css3/flexbox/flex-align-stretch.html: * css3/flexbox/flex-align-vertical-writing-mode.html: * css3/flexbox/flex-align.html: * css3/flexbox/flex-flow-auto-margins.html: * css3/flexbox/flex-flow-border.html: * css3/flexbox/flex-flow-margins-auto-size.html: * css3/flexbox/flex-flow-margins.html: * css3/flexbox/flex-flow-orientations.html: * css3/flexbox/flex-flow-overflow.html: * css3/flexbox/flex-flow-padding.html: * css3/flexbox/flex-flow.html: * css3/flexbox/flex-item-child-overflow.html: * css3/flexbox/flex-item-min-size.html: * css3/flexbox/flex-justify-content.html: * css3/flexbox/flex-no-flex.html: * css3/flexbox/flexitem.html: * css3/flexbox/floated-flexbox.html: * css3/flexbox/line-wrapping.html: * css3/flexbox/multiline-align-content-horizontal-column.html: * css3/flexbox/multiline-align-content.html: * css3/flexbox/multiline-align-self.html: * css3/flexbox/multiline-column-auto.html: * css3/flexbox/multiline-justify-content.html: * css3/flexbox/multiline-reverse-wrap-overflow.html: * css3/flexbox/multiline.html: * css3/flexbox/nested-stretch.html: * css3/flexbox/orthogonal-flex-directions.html: * css3/flexbox/perpendicular-writing-modes-inside-flex-item.html: * css3/flexbox/position-absolute-child.html: * css3/flexbox/preferred-widths-orthogonal.html: * css3/flexbox/preferred-widths.html: * css3/flexbox/style-change.html: * css3/flexbox/true-centering.html: * css3/flexbox/writing-modes.html: * resources/check-layout.js: Renamed from LayoutTests/css3/flexbox/resources/flexbox.js. (.): Rename checkFlexboxen to checkLayout that takes a CSS selector. Hide functions in a closure. Canonical link: https://commits.webkit.org/109095@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-13 19:58:47 +00:00
<script src="../../resources/check-layout.js"></script>
<body onload="checkLayout('.flexbox')">
Add support for min-height:auto and min-width:auto https://bugs.webkit.org/show_bug.cgi?id=88437 Reviewed by Tony Chang. Source/WebCore: Right now auto does the same thing as min-height/min-width:0. For flex-items it should be the same as min-content (followup patch). http://dev.w3.org/csswg/css3-flexbox/#min-size-auto Tests: fast/css/auto-min-size.html fast/css/deprecated-flexbox-auto-min-size.html * WebCore.order: * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return 0px for the computed value of auto. * css/CSSParser.cpp: (WebCore::CSSParser::validWidth): (WebCore): (WebCore::CSSParser::validHeight): (WebCore::CSSParser::parseValue): * css/CSSParser.h: (CSSParser): Restructure width/height parsing to reduce code duplication and make it easier to add auto as a valid min value. * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::adjustSizeConstraints): This code was unnecessarily checking intrinsicOrAuto since auto was previously not an allowed value for minWidth/minHeight. * rendering/RenderBox.cpp: (WebCore::RenderBox::computeLogicalWidthInRegion): (WebCore::RenderBox::computeLogicalWidthInRegionUsing): (WebCore::RenderBox::sizesLogicalWidthToFitContent): (WebCore::RenderBox::computeLogicalHeight): (WebCore::RenderBox::computeLogicalHeightUsing): (WebCore::RenderBox::computeContentLogicalHeightUsing): (WebCore::RenderBox::computeReplacedLogicalWidth): (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth): (WebCore::RenderBox::computeReplacedLogicalWidthUsing): (WebCore::RenderBox::computeReplacedLogicalHeight): (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight): (WebCore::RenderBox::computeReplacedLogicalHeightUsing): (WebCore::RenderBox::computePositionedLogicalWidth): (WebCore::RenderBox::computePositionedLogicalWidthUsing): (WebCore::RenderBox::computePositionedLogicalHeight): (WebCore::RenderBox::computePositionedLogicalHeightUsing): Need to pass a SizeType to all these methods so that we know if the Length we're working with is a min length since auto has a different meaning now for min lengths. * rendering/RenderBox.h: (RenderBox): * rendering/RenderDeprecatedFlexibleBox.cpp: (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex): * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): (WebCore::RenderFlexibleBox::lineBreakLength): (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::computeReplacedLogicalWidth): (WebCore::RenderReplaced::computeReplacedLogicalHeight): * rendering/RenderScrollbarPart.cpp: (WebCore::calcScrollbarThicknessUsing): (WebCore::RenderScrollbarPart::computeScrollbarWidth): (WebCore::RenderScrollbarPart::computeScrollbarHeight): * rendering/style/RenderStyle.h: Default minHeight/minWidth to auto instead of 0px. LayoutTests: * fast/css/auto-min-size-expected.txt: Added. * fast/css/auto-min-size.html: Added. * fast/css/deprecated-flexbox-auto-min-size.html: Added. * platform/chromium-linux/fast/css/deprecated-flexbox-auto-min-size-expected.txt: Added. Canonical link: https://commits.webkit.org/108743@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-07-10 21:45:27 +00:00
Tests that deprecated flexboxes treat min-width/min-height:auto as 0px.
<div class="flexbox horizontal">
<div class="item" data-expected-width=0 data-expected-height=20><div class="inline"></div></div>
<div class="item" data-expected-width=0 data-expected-height=20><div class="inline"></div></div>
<div class="item" data-expected-width=30 data-expected-height=30><div class="inline"></div></div>
</div>
<div class="flexbox vertical">
<div class="item" data-expected-width=20 data-expected-height=0><div class="inline"></div></div>
<div class="item" data-expected-width=20 data-expected-height=0><div class="inline"></div></div>
<div class="item" data-expected-width=30 data-expected-height=30><div class="inline"></div></div>
</div>
</body>