Diff
Modified: trunk/LayoutTests/ChangeLog (213304 => 213305)
--- trunk/LayoutTests/ChangeLog 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/ChangeLog 2017-03-02 22:38:07 UTC (rev 213305)
@@ -1,3 +1,18 @@
+2017-03-02 Dave Hyatt <hy...@apple.com>
+
+ flex-basis should be 0% (not 0px) when omitted
+ https://bugs.webkit.org/show_bug.cgi?id=169100
+ rdar://problem/30429154
+
+ Reviewed by Dean Jackson.
+
+ * css3/flexbox/bug669714-expected.txt:
+ * css3/flexbox/columns-auto-size-expected.txt:
+ * css3/flexbox/flex-longhand-parsing-expected.txt:
+ * css3/flexbox/flex-longhand-parsing.html:
+ * css3/flexbox/flex-property-parsing-expected.txt:
+ * css3/flexbox/flex-property-parsing.html:
+
2017-03-02 Ryan Haddad <ryanhad...@apple.com>
Mark inspector/model/color.html as flaky.
Modified: trunk/LayoutTests/css3/flexbox/bug669714-expected.txt (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/bug669714-expected.txt 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/bug669714-expected.txt 2017-03-02 22:38:07 UTC (rev 213305)
@@ -3,14 +3,5 @@
XXX
YYY
-FAIL #container 1 assert_equals:
-<div class="layout-column" id="container">
- <div class="layout-row">
- <div class="layout-column">
- <div class="flex" data-expected-height="18">XXX<span id="relpos"> </span></div>
- <div>YYY</div>
- </div>
- </div>
-</div>
-height expected 18 but got 0
+PASS #container 1
Modified: trunk/LayoutTests/css3/flexbox/columns-auto-size-expected.txt (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/columns-auto-size-expected.txt 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/columns-auto-size-expected.txt 2017-03-02 22:38:07 UTC (rev 213305)
@@ -1,12 +1,5 @@
-FAIL .flexbox 1 assert_equals:
-<div class="flexbox column vertical" style="margin-left: 100px;">
- <div data-expected-width="50" data-offset-x="20" style="min-width: 0; flex: 1;"><div data-expected-width="50" data-offset-x="20" class="child-div" style="width: 50px"></div></div>
- <div data-expected-width="0" data-offset-x="20" style="flex: 1;"></div>
- <div data-expected-width="10" data-offset-x="10" style="width: 10px;"></div>
- <div data-expected-width="10" data-offset-x="0" style="flex: 1 auto;"><div style="width: 10px"></div></div>
-</div>
-width expected 50 but got 0
+PASS .flexbox 1
PASS .flexbox 2
PASS .flexbox 3
PASS .flexbox 4
@@ -15,13 +8,6 @@
PASS .flexbox 7
PASS .flexbox 8
PASS .flexbox 9
-FAIL .flexbox 10 assert_equals:
-<div class="flexbox column horizontal">
- <div data-expected-height="0" data-offset-y="0" style="flex: 1;"></div>
- <div data-expected-height="10" data-offset-y="0" style="height: 10px;"></div>
- <div data-expected-height="10" data-offset-y="10" style="flex: 1 auto;"><div style="height: 10px"></div></div>
- <div data-expected-height="10" data-offset-y="20" style="min-height: 0; flex: 1;"><div data-expected-height="10" data-offset-y="20" class="child-div" style="height: 10px"></div></div>
-</div>
-height expected 10 but got 0
+PASS .flexbox 10
PASS .flexbox 11
Modified: trunk/LayoutTests/css3/flexbox/flex-longhand-parsing-expected.txt (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/flex-longhand-parsing-expected.txt 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/flex-longhand-parsing-expected.txt 2017-03-02 22:38:07 UTC (rev 213305)
@@ -28,11 +28,11 @@
PASS getComputedStyle(flexitem).flex is "0 0 auto"
PASS flexitem.style.flex is "1.5 0 auto"
PASS getComputedStyle(flexitem).flex is "1.5 0 auto"
-PASS flexitem.style.flex is "3 1 0px"
+PASS flexitem.style.flex is "3 1 0%"
PASS flexitem.style.flexGrow is "3"
PASS flexitem.style.flexShrink is "1"
-PASS flexitem.style.flexBasis is "0px"
-PASS getComputedStyle(flexitem).flex is "3 1 0px"
+PASS flexitem.style.flexBasis is "0%"
+PASS getComputedStyle(flexitem).flex is "3 1 0%"
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/css3/flexbox/flex-longhand-parsing.html (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/flex-longhand-parsing.html 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/flex-longhand-parsing.html 2017-03-02 22:38:07 UTC (rev 213305)
@@ -56,11 +56,11 @@
shouldBeEqualToString('getComputedStyle(flexitem).flex', '1.5 0 auto');
flexitem.style.flex = 3;
-shouldBeEqualToString('flexitem.style.flex', '3 1 0px');
+shouldBeEqualToString('flexitem.style.flex', '3 1 0%');
shouldBeEqualToString('flexitem.style.flexGrow', '3');
shouldBeEqualToString('flexitem.style.flexShrink', '1');
-shouldBeEqualToString('flexitem.style.flexBasis', '0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '3 1 0px');
+shouldBeEqualToString('flexitem.style.flexBasis', '0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '3 1 0%');
</script>
</body>
Modified: trunk/LayoutTests/css3/flexbox/flex-property-parsing-expected.txt (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/flex-property-parsing-expected.txt 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/flex-property-parsing-expected.txt 2017-03-02 22:38:07 UTC (rev 213305)
@@ -9,12 +9,12 @@
PASS getComputedStyle(flexitem).flex is "0 1 auto"
PASS flexitem.style.flex is ""
PASS getComputedStyle(flexitem).flex is "0 1 auto"
-PASS flexitem.style.flex is "2 1 0px"
-PASS getComputedStyle(flexitem).flex is "2 1 0px"
-PASS flexitem.style.flex is "0 1 0px"
-PASS getComputedStyle(flexitem).flex is "0 1 0px"
-PASS flexitem.style.flex is "1.5 1 0px"
-PASS getComputedStyle(flexitem).flex is "1.5 1 0px"
+PASS flexitem.style.flex is "2 1 0%"
+PASS getComputedStyle(flexitem).flex is "2 1 0%"
+PASS flexitem.style.flex is "0 1 0%"
+PASS getComputedStyle(flexitem).flex is "0 1 0%"
+PASS flexitem.style.flex is "1.5 1 0%"
+PASS getComputedStyle(flexitem).flex is "1.5 1 0%"
PASS flexitem.style.flex is "1 1 auto"
PASS getComputedStyle(flexitem).flex is "1 1 auto"
PASS flexitem.style.flex is "1 1 1px"
@@ -25,12 +25,12 @@
PASS getComputedStyle(flexitem).flex is "1 1 0px"
PASS flexitem.style.flex is "0 0 auto"
PASS getComputedStyle(flexitem).flex is "0 0 auto"
-PASS flexitem.style.flex is "0 0 0px"
-PASS getComputedStyle(flexitem).flex is "0 0 0px"
-PASS flexitem.style.flex is "0 1 0px"
-PASS getComputedStyle(flexitem).flex is "0 1 0px"
-PASS flexitem.style.flex is "1 0 0px"
-PASS getComputedStyle(flexitem).flex is "1 0 0px"
+PASS flexitem.style.flex is "0 0 0%"
+PASS getComputedStyle(flexitem).flex is "0 0 0%"
+PASS flexitem.style.flex is "0 1 0%"
+PASS getComputedStyle(flexitem).flex is "0 1 0%"
+PASS flexitem.style.flex is "1 0 0%"
+PASS getComputedStyle(flexitem).flex is "1 0 0%"
PASS flexitem.style.flex is "2 1 auto"
PASS getComputedStyle(flexitem).flex is "2 1 auto"
PASS flexitem.style.flex is "3 1 4px"
Modified: trunk/LayoutTests/css3/flexbox/flex-property-parsing.html (213304 => 213305)
--- trunk/LayoutTests/css3/flexbox/flex-property-parsing.html 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/LayoutTests/css3/flexbox/flex-property-parsing.html 2017-03-02 22:38:07 UTC (rev 213305)
@@ -28,16 +28,16 @@
shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 1 auto');
flexitem.style.flex = '2';
-shouldBeEqualToString('flexitem.style.flex', '2 1 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '2 1 0px');
+shouldBeEqualToString('flexitem.style.flex', '2 1 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '2 1 0%');
flexitem.style.flex = '0';
-shouldBeEqualToString('flexitem.style.flex', '0 1 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 1 0px');
+shouldBeEqualToString('flexitem.style.flex', '0 1 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 1 0%');
flexitem.style.flex = '1.5';
-shouldBeEqualToString('flexitem.style.flex', '1.5 1 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '1.5 1 0px');
+shouldBeEqualToString('flexitem.style.flex', '1.5 1 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '1.5 1 0%');
flexitem.style.flex = 'auto';
shouldBeEqualToString('flexitem.style.flex', '1 1 auto');
@@ -61,16 +61,16 @@
shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 0 auto');
flexitem.style.flex = '0 0';
-shouldBeEqualToString('flexitem.style.flex', '0 0 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 0 0px');
+shouldBeEqualToString('flexitem.style.flex', '0 0 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 0 0%');
flexitem.style.flex = '0 1';
-shouldBeEqualToString('flexitem.style.flex', '0 1 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 1 0px');
+shouldBeEqualToString('flexitem.style.flex', '0 1 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '0 1 0%');
flexitem.style.flex = '1 0';
-shouldBeEqualToString('flexitem.style.flex', '1 0 0px');
-shouldBeEqualToString('getComputedStyle(flexitem).flex', '1 0 0px');
+shouldBeEqualToString('flexitem.style.flex', '1 0 0%');
+shouldBeEqualToString('getComputedStyle(flexitem).flex', '1 0 0%');
flexitem.style.flex = '2 auto';
shouldBeEqualToString('flexitem.style.flex', '2 1 auto');
Modified: trunk/Source/WebCore/ChangeLog (213304 => 213305)
--- trunk/Source/WebCore/ChangeLog 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/Source/WebCore/ChangeLog 2017-03-02 22:38:07 UTC (rev 213305)
@@ -1,3 +1,16 @@
+2017-03-02 Dave Hyatt <hy...@apple.com>
+
+ flex-basis should be 0% (not 0px) when omitted
+ https://bugs.webkit.org/show_bug.cgi?id=169100
+ rdar://problem/30429154
+
+ Reviewed by Dean Jackson.
+
+ Covered by existing tests.
+
+ * css/parser/CSSPropertyParser.cpp:
+ (WebCore::CSSPropertyParser::consumeFlex):
+
2017-02-22 Jiewen Tan <jiewen_...@apple.com>
WebCrypto API support for AES-GCM
Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (213304 => 213305)
--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2017-03-02 22:30:23 UTC (rev 213304)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2017-03-02 22:38:07 UTC (rev 213305)
@@ -4631,8 +4631,13 @@
flexGrow = 1;
if (flexShrink == unsetValue)
flexShrink = 1;
+
+ // FIXME: Using % here is a hack to work around intrinsic sizing implementation being
+ // a mess (e.g., turned off for nested column flexboxes, failing to relayout properly even
+ // if turned back on for nested columns, etc.). We have layout test coverage of both
+ // scenarios.
if (!flexBasis)
- flexBasis = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::CSS_PX);
+ flexBasis = CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::CSS_PERCENTAGE);
}
if (!m_range.atEnd())