+2012-04-02 Tony Chang <tony@chromium.org>
+
+ add css parsing of -webkit-flex
+ https://bugs.webkit.org/show_bug.cgi?id=82927
+
+ Reviewed by Ojan Vafai.
+
+ * css3/flexbox/flex-property-parsing-expected.txt: Added.
+ * css3/flexbox/flex-property-parsing.html: Added.
+ * css3/flexbox/script-tests/css-properties.js:
+ * css3/flexbox/script-tests/flex-parsing.js:
+ * css3/flexbox/script-tests/flex-property-parsing.js: Added.
+ * fast/css/getComputedStyle/computed-style-expected.txt:
+ * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
+ * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
+ * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
+ * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
+ * platform/efl/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
+ * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
+ * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+ * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
+ * svg/css/getComputedStyle-basic-expected.txt:
+
2012-04-02 Chris Rogers <crogers@google.com>
Rebaseline oscillator results
--- /dev/null
+Tests setting the -webkit-flex propery.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS flexitem.style.webkitFlex is ""
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is ""
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is ""
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "1 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 0px"
+PASS flexitem.style.webkitFlex is "0 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 0px"
+PASS flexitem.style.webkitFlex is "1.5 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "1.5 0 0px"
+PASS flexitem.style.webkitFlex is "1 0 auto"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 auto"
+PASS flexitem.style.webkitFlex is "1 0 1px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 1px"
+PASS flexitem.style.webkitFlex is "1 0 2em"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 32px"
+PASS flexitem.style.webkitFlex is "1 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 0px"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "0 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 0px"
+PASS flexitem.style.webkitFlex is "0 1 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 1 0px"
+PASS flexitem.style.webkitFlex is "1 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 0 0px"
+PASS flexitem.style.webkitFlex is "2 0 auto"
+PASS getComputedStyle(flexitem).webkitFlex is "2 0 auto"
+PASS flexitem.style.webkitFlex is "3 0 4px"
+PASS getComputedStyle(flexitem).webkitFlex is "3 0 4px"
+PASS flexitem.style.webkitFlex is "5.25 0 auto"
+PASS getComputedStyle(flexitem).webkitFlex is "5.25 0 auto"
+PASS flexitem.style.webkitFlex is "4 0 6em"
+PASS getComputedStyle(flexitem).webkitFlex is "4 0 96px"
+PASS flexitem.style.webkitFlex is "4 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "4 0 0px"
+PASS flexitem.style.webkitFlex is "0 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 0px"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "1 2 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 2 0px"
+PASS flexitem.style.webkitFlex is "0 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 0px"
+PASS flexitem.style.webkitFlex is "1 2 auto"
+PASS getComputedStyle(flexitem).webkitFlex is "1 2 auto"
+PASS flexitem.style.webkitFlex is "1.75 2 3px"
+PASS getComputedStyle(flexitem).webkitFlex is "1.75 2 3px"
+PASS flexitem.style.webkitFlex is "1 2 3px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 2 3px"
+PASS flexitem.style.webkitFlex is "1 2 3px"
+PASS getComputedStyle(flexitem).webkitFlex is "1 2 3px"
+PASS flexitem.style.webkitFlex is "0 0 auto"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "0 0 0px"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 0px"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "initial"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS flexitem.style.webkitFlex is "none"
+PASS getComputedStyle(flexitem).webkitFlex is "0 0 auto"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<div id="flexbox">
+ <div id="flexitem"></div>
+</div>
+<script>
+description('Tests setting the -webkit-flex propery.');
+
+var flexbox = document.getElementById("flexbox");
+var flexitem = document.getElementById("flexitem");
+
+// Test default value.
+shouldBeEqualToString('flexitem.style.webkitFlex', '');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+// Should not inherit.
+flexbox.style.webkitFlex = '1 2 3px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+// Invalid value.
+flexitem.style.webkitFlex = 'junk';
+shouldBeEqualToString('flexitem.style.webkitFlex', '');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 0px');
+
+flexitem.style.webkitFlex = '0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 0px');
+
+flexitem.style.webkitFlex = '1.5';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1.5 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1.5 0 0px');
+
+flexitem.style.webkitFlex = 'auto';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 auto');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 auto');
+
+flexitem.style.webkitFlex = '1px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 1px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 1px');
+
+flexitem.style.webkitFlex = '2em';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 2em');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 32px');
+
+flexitem.style.webkitFlex = '0px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 0px');
+
+flexitem.style.webkitFlex = 'none';
+flexitem.style.webkitFlex = '-2'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 0px');
+
+flexitem.style.webkitFlex = '0 1';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 1 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 1 0px');
+
+flexitem.style.webkitFlex = '1 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 0 0px');
+
+flexitem.style.webkitFlex = '2 auto';
+shouldBeEqualToString('flexitem.style.webkitFlex', '2 0 auto');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '2 0 auto');
+
+flexitem.style.webkitFlex = '3 4px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '3 0 4px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '3 0 4px');
+
+flexitem.style.webkitFlex = 'auto 5.25';
+shouldBeEqualToString('flexitem.style.webkitFlex', '5.25 0 auto');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '5.25 0 auto');
+
+flexitem.style.webkitFlex = '6em 4';
+shouldBeEqualToString('flexitem.style.webkitFlex', '4 0 6em');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '4 0 96px');
+
+flexitem.style.webkitFlex = '4 0px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '4 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '4 0 0px');
+
+flexitem.style.webkitFlex = '0 0px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 0px');
+
+flexitem.style.webkitFlex = 'none';
+flexitem.style.webkitFlex = '-1 5'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 -1'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '-1 -1'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = 'auto 2em'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '2px 4px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0px 0px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 2 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 2 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 2 0px');
+
+flexitem.style.webkitFlex = '0 0 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 0px');
+
+flexitem.style.webkitFlex = '1 2 auto';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 2 auto');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 2 auto');
+
+flexitem.style.webkitFlex = '1.75 2 3px';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1.75 2 3px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1.75 2 3px');
+
+flexitem.style.webkitFlex = '1 3px 2';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 2 3px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 2 3px');
+
+flexitem.style.webkitFlex = '3px 1 2';
+shouldBeEqualToString('flexitem.style.webkitFlex', '1 2 3px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '1 2 3px');
+
+flexitem.style.webkitFlex = 'auto 0 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 auto');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0px 0';
+shouldBeEqualToString('flexitem.style.webkitFlex', '0 0 0px');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 0px');
+
+flexitem.style.webkitFlex = 'none';
+flexitem.style.webkitFlex = '1 2 3'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 2 3'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 0 3'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0 1'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 -2 3px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 2px 3px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1 2px auto'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0px 0px 0'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0 0 0'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0 0px 0'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0 0px 0px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '0 0 0px 0'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1, 2, 3px'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = '1,'; // Invalid, return previous value.
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = 'initial';
+shouldBeEqualToString('flexitem.style.webkitFlex', 'initial');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+
+flexitem.style.webkitFlex = 'none';
+shouldBeEqualToString('flexitem.style.webkitFlex', 'none');
+shouldBeEqualToString('getComputedStyle(flexitem).webkitFlex', '0 0 auto');
+</script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
flexbox.style.webkitFlexLinePack = 'foo';
shouldBeEqualToString('flexbox.style.webkitFlexLinePack', '');
shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexLinePack', 'stretch');
-
-successfullyParsed = true;
shouldBeEqualToString('testFlex("-webkit-flex(1) foo", "' + attribute + '")', '');
shouldBeEqualToString('testFlex("10px -webkit-flex(1)", "' + attribute + '")', '');
}
-successfullyParsed = true;
-webkit-column-rule-width: 0px;
-webkit-column-span: 1;
-webkit-column-width: auto;
+-webkit-flex: 0 0 auto;
-webkit-flex-order: 0;
-webkit-flex-pack: start;
-webkit-flex-align: stretch;
-webkit-column-rule-width: 0px
-webkit-column-span: 1
-webkit-column-width: auto
+ -webkit-flex: 0 0 auto
-webkit-flex-order: 0
-webkit-flex-pack: start
-webkit-flex-align: stretch
rect: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-column-width) : auto
rect: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-flex) : 0 0 auto
+rect: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
rect: style.getPropertyValue(-webkit-flex-order) : 0
rect: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-flex-pack) : start
g: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-column-width) : auto
g: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-flex) : 0 0 auto
+g: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
g: style.getPropertyValue(-webkit-flex-order) : 0
g: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-flex-pack) : start
-webkit-column-rule-width: 0px;
-webkit-column-span: 1;
-webkit-column-width: auto;
+-webkit-flex: 0 0 auto;
-webkit-flex-order: 0;
-webkit-flex-pack: start;
-webkit-flex-align: stretch;
-webkit-column-rule-width: 0px
-webkit-column-span: 1
-webkit-column-width: auto
+ -webkit-flex: 0 0 auto
-webkit-flex-order: 0
-webkit-flex-pack: start
-webkit-flex-align: stretch
-webkit-column-rule-width: 0px;
-webkit-column-span: 1;
-webkit-column-width: auto;
+-webkit-flex: 0 0 auto;
-webkit-flex-order: 0;
-webkit-flex-pack: start;
-webkit-flex-align: stretch;
-webkit-column-rule-width: 0px
-webkit-column-span: 1
-webkit-column-width: auto
+ -webkit-flex: 0 0 auto
-webkit-flex-order: 0
-webkit-flex-pack: start
-webkit-flex-align: stretch
rect: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-column-width) : auto
rect: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-flex) : 0 0 auto
+rect: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
rect: style.getPropertyValue(-webkit-flex-order) : 0
rect: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-flex-pack) : start
g: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-column-width) : auto
g: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-flex) : 0 0 auto
+g: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
g: style.getPropertyValue(-webkit-flex-order) : 0
g: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-flex-pack) : start
-webkit-column-rule-width: 0px
-webkit-column-span: 1
-webkit-column-width: auto
+ -webkit-flex: 0 0 auto
-webkit-flex-order: 0
-webkit-flex-pack: start
-webkit-flex-align: stretch
rect: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-column-width) : auto
rect: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-flex) : 0 0 auto
+rect: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
rect: style.getPropertyValue(-webkit-flex-order) : 0
rect: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-flex-pack) : start
g: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-column-width) : auto
g: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-flex) : 0 0 auto
+g: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
g: style.getPropertyValue(-webkit-flex-order) : 0
g: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-flex-pack) : start
-webkit-column-rule-width: 0px;
-webkit-column-span: 1;
-webkit-column-width: auto;
+-webkit-flex: 0 0 auto;
-webkit-flex-order: 0;
-webkit-flex-pack: start;
-webkit-flex-align: stretch;
-webkit-column-rule-width: 0px
-webkit-column-span: 1
-webkit-column-width: auto
+ -webkit-flex: 0 0 auto
-webkit-flex-order: 0
-webkit-flex-pack: start
-webkit-flex-align: stretch
rect: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-column-width) : auto
rect: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-flex) : 0 0 auto
+rect: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
rect: style.getPropertyValue(-webkit-flex-order) : 0
rect: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-flex-pack) : start
g: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-column-width) : auto
g: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-flex) : 0 0 auto
+g: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
g: style.getPropertyValue(-webkit-flex-order) : 0
g: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-flex-pack) : start
rect: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-column-width) : auto
rect: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(-webkit-flex) : 0 0 auto
+rect: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
rect: style.getPropertyValue(-webkit-flex-order) : 0
rect: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
rect: style.getPropertyValue(-webkit-flex-pack) : start
g: style.getPropertyCSSValue(-webkit-column-span) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-column-width) : auto
g: style.getPropertyCSSValue(-webkit-column-width) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(-webkit-flex) : 0 0 auto
+g: style.getPropertyCSSValue(-webkit-flex) : [object CSSValueList]
g: style.getPropertyValue(-webkit-flex-order) : 0
g: style.getPropertyCSSValue(-webkit-flex-order) : [object CSSPrimitiveValue]
g: style.getPropertyValue(-webkit-flex-pack) : start
+2012-04-02 Tony Chang <tony@chromium.org>
+
+ add css parsing of -webkit-flex
+ https://bugs.webkit.org/show_bug.cgi?id=82927
+
+ Reviewed by Ojan Vafai.
+
+ This is the new syntax for CSS3 flexbox:
+ http://dev.w3.org/csswg/css3-flexbox/#flexibility
+
+ Not hooked up to anything in the render tree yet so the old syntax is
+ still valid.
+
+ Test: css3/flexbox/flex-property-parsing.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore):
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ (WebCore::CSSParser::parseFlex):
+ * css/CSSParser.h:
+ (WebCore):
+ * css/CSSProperty.cpp:
+ (WebCore::CSSProperty::isInheritedProperty):
+ * css/CSSPropertyNames.in:
+ * css/CSSStyleApplyProperty.cpp:
+ (ApplyPropertyFlex):
+ (WebCore::ApplyPropertyFlex::applyInheritValue):
+ (WebCore::ApplyPropertyFlex::applyInitialValue):
+ (WebCore::ApplyPropertyFlex::applyValue):
+ (WebCore::ApplyPropertyFlex::createHandler):
+ (WebCore::ApplyPropertyFlex::getFlexValue):
+ (WebCore):
+ (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::collectMatchingRulesForList):
+ * rendering/style/RenderStyle.h:
+ * rendering/style/StyleFlexibleBoxData.cpp:
+ (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
+ (WebCore::StyleFlexibleBoxData::operator==):
+ * rendering/style/StyleFlexibleBoxData.h:
+ (StyleFlexibleBoxData):
+
2012-04-02 Daniel Cheng <dcheng@chromium.org>
Having a drop handler prevents navigation on drop even if event is not cancelled
#if ENABLE(DASHBOARD_SUPPORT)
CSSPropertyWebkitDashboardRegion,
#endif
+ CSSPropertyWebkitFlex,
CSSPropertyWebkitFlexOrder,
CSSPropertyWebkitFlexPack,
CSSPropertyWebkitFlexAlign,
return cssValuePool->createValue(style->display());
case CSSPropertyEmptyCells:
return cssValuePool->createValue(style->emptyCells());
+ case CSSPropertyWebkitFlex: {
+ RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
+ list->append(cssValuePool->createValue(style->positiveFlex()));
+ list->append(cssValuePool->createValue(style->negativeFlex()));
+
+ Length preferredSize = style->flexPreferredSize();
+ if (preferredSize.isAuto())
+ list->append(cssValuePool->createIdentifierValue(CSSValueAuto));
+ else if (preferredSize.isPercent())
+ list->append(cssValuePool->createValue(preferredSize.value(), CSSPrimitiveValue::CSS_PERCENTAGE));
+ else
+ list->append(cssValuePool->createValue(preferredSize.value(), CSSPrimitiveValue::CSS_PX));
+
+ return list.release();
+ }
case CSSPropertyWebkitFlexOrder:
return cssValuePool->createValue(style->flexOrder(), CSSPrimitiveValue::CSS_NUMBER);
case CSSPropertyWebkitFlexPack:
else if (!id && validUnit(value, FLength | FPercent | FNonNeg))
// ### handle multilength case where we allow relative units
validPrimitive = true;
- else if (value->unit == CSSParserValue::Function)
- return parseFlex(propId, important);
+ else if (value->unit == CSSParserValue::Function) {
+ // FIXME: Remove -webkit-flex() handling once we finish implementing the -webkit-flex propery.
+ if (!equalIgnoringCase(value->function->name, "-webkit-flex(") || m_valueList->next())
+ return false;
+ parsedValue = parseFlex(value->function->args.get());
+ }
break;
case CSSPropertyBottom: // <length> | <percentage> | auto | inherit
}
break;
#endif
+ case CSSPropertyWebkitFlex: {
+ if (id == CSSValueNone)
+ validPrimitive = true;
+ else if (RefPtr<CSSFlexValue> flexValue = parseFlex(m_valueList.get())) {
+ RefPtr<CSSValueList> flexList = CSSValueList::createSpaceSeparated();
+ flexList->append(cssValuePool()->createValue(flexValue->positiveFlex(), CSSPrimitiveValue::CSS_NUMBER));
+ flexList->append(cssValuePool()->createValue(flexValue->negativeFlex(), CSSPrimitiveValue::CSS_NUMBER));
+ flexList->append(flexValue->preferredSize());
+ parsedValue = flexList;
+ }
+ break;
+ }
case CSSPropertyWebkitFlexOrder:
if (validUnit(value, FInteger, CSSStrictMode)) {
// We restrict the smallest value to int min + 2 because we use int min and int min + 1 as special values in a hash set.
return true;
}
-bool CSSParser::parseFlex(int propId, bool important)
+PassRefPtr<CSSFlexValue> CSSParser::parseFlex(CSSParserValueList* args)
{
- CSSParserValue* value = m_valueList->current();
- CSSParserValueList* args = value->function->args.get();
- if (!equalIgnoringCase(value->function->name, "-webkit-flex(") || !args || !args->size() || args->size() > 3 || m_valueList->next())
- return false;
-
+ if (!args || !args->size() || args->size() > 3)
+ return 0;
static const double unsetValue = -1;
double positiveFlex = unsetValue;
double negativeFlex = unsetValue;
preferredSize = cssValuePool()->createValue(0, CSSPrimitiveValue::CSS_PX);
} else {
// We only allow 3 numbers without units if the last value is 0. E.g., flex(1 1 1) is invalid.
- return false;
+ return 0;
}
} else if (!preferredSize && (arg->id == CSSValueAuto || validUnit(arg, FLength | FPercent | FNonNeg)))
preferredSize = parseValidPrimitive(arg->id, arg);
else {
// Not a valid arg for flex().
- return false;
+ return 0;
}
args->next();
}
preferredSize = cssValuePool()->createValue(0, CSSPrimitiveValue::CSS_PX);
RefPtr<CSSFlexValue> flex = CSSFlexValue::create(clampToFloat(positiveFlex), clampToFloat(negativeFlex), preferredSize);
- addProperty(propId, flex.release(), important);
- return true;
+ return flex;
}
struct BorderImageParseContext {
class CSSStyleSheet;
class CSSValue;
class CSSValueList;
+class CSSFlexValue;
class CSSWrapShape;
class Document;
class MediaQueryExp;
bool parseReflect(int propId, bool important);
- bool parseFlex(int propId, bool important);
+ PassRefPtr<CSSFlexValue> parseFlex(CSSParserValueList* args);
// Image generators
bool parseCanvas(CSSParserValueList*, RefPtr<CSSValue>&);
#if ENABLE(CSS_FILTERS)
case CSSPropertyWebkitFilter:
#endif
+ case CSSPropertyWebkitFlex:
case CSSPropertyWebkitFlexOrder:
case CSSPropertyWebkitFlexPack:
case CSSPropertyWebkitFlexAlign:
#if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
-webkit-filter
#endif
+-webkit-flex
-webkit-flex-align
-webkit-flex-direction
-webkit-flex-flow
}
};
+class ApplyPropertyFlex {
+public:
+ static void applyInheritValue(CSSStyleSelector* selector)
+ {
+ ApplyPropertyDefaultBase<float, &RenderStyle::positiveFlex, float, &RenderStyle::setPositiveFlex, float, &RenderStyle::initialNegativeFlex>::applyInheritValue(selector);
+ ApplyPropertyDefaultBase<float, &RenderStyle::negativeFlex, float, &RenderStyle::setNegativeFlex, float, &RenderStyle::initialPositiveFlex>::applyInheritValue(selector);
+ ApplyPropertyDefaultBase<Length, &RenderStyle::flexPreferredSize, Length, &RenderStyle::setFlexPreferredSize, Length, &RenderStyle::initialFlexPreferredSize>::applyInheritValue(selector);
+ }
+
+ static void applyInitialValue(CSSStyleSelector* selector)
+ {
+ selector->style()->setPositiveFlex(RenderStyle::initialPositiveFlex());
+ selector->style()->setNegativeFlex(RenderStyle::initialNegativeFlex());
+ selector->style()->setFlexPreferredSize(RenderStyle::initialFlexPreferredSize());
+ }
+
+ static void applyValue(CSSStyleSelector* selector, CSSValue* value)
+ {
+ if (value->isPrimitiveValue()) {
+ CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
+ if (primitiveValue->getIdent() == CSSValueNone)
+ applyInitialValue(selector);
+ return;
+ }
+
+ if (!value->isValueList())
+ return;
+ CSSValueList* valueList = static_cast<CSSValueList*>(value);
+ if (valueList->length() != 3)
+ return;
+
+ float flexValue = 0;
+ if (!getFlexValue(valueList->itemWithoutBoundsCheck(0), flexValue))
+ return;
+ selector->style()->setPositiveFlex(flexValue);
+
+ if (!getFlexValue(valueList->itemWithoutBoundsCheck(1), flexValue))
+ return;
+ selector->style()->setNegativeFlex(flexValue);
+
+ ApplyPropertyLength<&RenderStyle::flexPreferredSize, &RenderStyle::setFlexPreferredSize, &RenderStyle::initialFlexPreferredSize, AutoEnabled>::applyValue(selector, valueList->itemWithoutBoundsCheck(2));
+ }
+
+ static PropertyHandler createHandler()
+ {
+ return PropertyHandler(&applyInheritValue, &applyInitialValue, &applyValue);
+ }
+private:
+ static bool getFlexValue(CSSValue* value, float& flexValue)
+ {
+ if (!value->isPrimitiveValue())
+ return false;
+ CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
+ if (!primitiveValue->isNumber())
+ return false;
+ flexValue = primitiveValue->getFloatValue();
+ return true;
+ }
+
+};
+
const CSSStyleApplyProperty& CSSStyleApplyProperty::sharedCSSStyleApplyProperty()
{
DEFINE_STATIC_LOCAL(CSSStyleApplyProperty, cssStyleApplyPropertyInstance, ());
setPropertyHandler(CSSPropertyWebkitColumnSpan, ApplyPropertyDefault<ColumnSpan, &RenderStyle::columnSpan, ColumnSpan, &RenderStyle::setColumnSpan, ColumnSpan, &RenderStyle::initialColumnSpan>::createHandler());
setPropertyHandler(CSSPropertyWebkitColumnRuleStyle, ApplyPropertyDefault<EBorderStyle, &RenderStyle::columnRuleStyle, EBorderStyle, &RenderStyle::setColumnRuleStyle, EBorderStyle, &RenderStyle::initialBorderStyle>::createHandler());
setPropertyHandler(CSSPropertyWebkitColumnWidth, ApplyPropertyAuto<float, &RenderStyle::columnWidth, &RenderStyle::setColumnWidth, &RenderStyle::hasAutoColumnWidth, &RenderStyle::setHasAutoColumnWidth, ComputeLength>::createHandler());
+ setPropertyHandler(CSSPropertyWebkitFlex, ApplyPropertyFlex::createHandler());
setPropertyHandler(CSSPropertyWebkitFlexAlign, ApplyPropertyDefault<EFlexAlign, &RenderStyle::flexAlign, EFlexAlign, &RenderStyle::setFlexAlign, EFlexAlign, &RenderStyle::initialFlexAlign>::createHandler());
setPropertyHandler(CSSPropertyWebkitFlexDirection, ApplyPropertyDefault<EFlexDirection, &RenderStyle::flexDirection, EFlexDirection, &RenderStyle::setFlexDirection, EFlexDirection, &RenderStyle::initialFlexDirection>::createHandler());
setPropertyHandler(CSSPropertyWebkitFlexFlow, ApplyPropertyExpanding<SuppressValue, CSSPropertyWebkitFlexDirection, CSSPropertyWebkitFlexWrap>::createHandler());
case CSSPropertyWebkitColumns:
case CSSPropertyWebkitColumnSpan:
case CSSPropertyWebkitColumnWidth:
+ case CSSPropertyWebkitFlex:
case CSSPropertyWebkitFlexAlign:
case CSSPropertyWebkitFlexDirection:
case CSSPropertyWebkitFlexFlow:
float flexboxWidthNegativeFlex() const { return rareNonInheritedData->m_flexibleBox->m_widthNegativeFlex; }
float flexboxHeightPositiveFlex() const { return rareNonInheritedData->m_flexibleBox->m_heightPositiveFlex; }
float flexboxHeightNegativeFlex() const { return rareNonInheritedData->m_flexibleBox->m_heightNegativeFlex; }
+ float positiveFlex() const { return rareNonInheritedData->m_flexibleBox->m_positiveFlex; }
+ float negativeFlex() const { return rareNonInheritedData->m_flexibleBox->m_negativeFlex; }
+ Length flexPreferredSize() const { return rareNonInheritedData->m_flexibleBox->m_preferredSize; }
int flexOrder() const { return rareNonInheritedData->m_flexibleBox->m_flexOrder; }
EFlexPack flexPack() const { return static_cast<EFlexPack>(rareNonInheritedData->m_flexibleBox->m_flexPack); }
EFlexAlign flexAlign() const { return static_cast<EFlexAlign>(rareNonInheritedData->m_flexibleBox->m_flexAlign); }
void setFlexboxWidthNegativeFlex(float f) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_widthNegativeFlex, f); }
void setFlexboxHeightPositiveFlex(float f) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_heightPositiveFlex, f); }
void setFlexboxHeightNegativeFlex(float f) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_heightNegativeFlex, f); }
+ void setPositiveFlex(float f) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_positiveFlex, f); }
+ void setNegativeFlex(float f) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_negativeFlex, f); }
+ void setFlexPreferredSize(Length l) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_preferredSize, l); }
void setFlexOrder(int o) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_flexOrder, o); }
void setFlexPack(EFlexPack p) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_flexPack, p); }
void setFlexAlign(EFlexAlign a) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_flexAlign, a); }
static unsigned int initialBoxOrdinalGroup() { return 1; }
static EBoxSizing initialBoxSizing() { return CONTENT_BOX; }
static StyleReflection* initialBoxReflect() { return 0; }
- static float initialFlexboxWidthPositiveFlex() { return 0; }
- static float initialFlexboxWidthNegativeFlex() { return 0; }
- static float initialFlexboxHeightPositiveFlex() { return 0; }
- static float initialFlexboxHeightNegativeFlex() { return 0; }
+ static float initialPositiveFlex() { return 0; }
+ static float initialNegativeFlex() { return 0; }
+ static Length initialFlexPreferredSize() { return Length(Auto); }
static int initialFlexOrder() { return 0; }
static EFlexPack initialFlexPack() { return PackStart; }
static EFlexAlign initialFlexAlign() { return AlignStretch; }
namespace WebCore {
StyleFlexibleBoxData::StyleFlexibleBoxData()
- : m_widthPositiveFlex(RenderStyle::initialFlexboxWidthPositiveFlex())
- , m_widthNegativeFlex(RenderStyle::initialFlexboxWidthNegativeFlex())
- , m_heightPositiveFlex(RenderStyle::initialFlexboxHeightPositiveFlex())
- , m_heightNegativeFlex(RenderStyle::initialFlexboxHeightNegativeFlex())
+ : m_widthPositiveFlex(RenderStyle::initialPositiveFlex())
+ , m_widthNegativeFlex(RenderStyle::initialNegativeFlex())
+ , m_heightPositiveFlex(RenderStyle::initialPositiveFlex())
+ , m_heightNegativeFlex(RenderStyle::initialNegativeFlex())
+ , m_positiveFlex(RenderStyle::initialPositiveFlex())
+ , m_negativeFlex(RenderStyle::initialNegativeFlex())
+ , m_preferredSize(RenderStyle::initialFlexPreferredSize())
, m_flexOrder(RenderStyle::initialFlexOrder())
, m_flexPack(RenderStyle::initialFlexPack())
, m_flexAlign(RenderStyle::initialFlexAlign())
, m_widthNegativeFlex(o.m_widthNegativeFlex)
, m_heightPositiveFlex(o.m_heightPositiveFlex)
, m_heightNegativeFlex(o.m_heightNegativeFlex)
+ , m_positiveFlex(o.m_positiveFlex)
+ , m_negativeFlex(o.m_negativeFlex)
+ , m_preferredSize(o.m_preferredSize)
, m_flexOrder(o.m_flexOrder)
, m_flexPack(o.m_flexPack)
, m_flexAlign(o.m_flexAlign)
{
return m_widthPositiveFlex == o.m_widthPositiveFlex && m_widthNegativeFlex == o.m_widthNegativeFlex
&& m_heightPositiveFlex == o.m_heightPositiveFlex && m_heightNegativeFlex == o.m_heightNegativeFlex
+ && m_positiveFlex == o.m_positiveFlex && m_negativeFlex == o.m_negativeFlex && m_preferredSize == o.m_preferredSize
&& m_flexOrder == o.m_flexOrder && m_flexPack == o.m_flexPack && m_flexAlign == o.m_flexAlign
&& m_flexItemAlign == o.m_flexItemAlign && m_flexDirection == o.m_flexDirection && m_flexWrap == o.m_flexWrap
&& m_flexLinePack == o.m_flexLinePack;
#ifndef StyleFlexibleBoxData_h
#define StyleFlexibleBoxData_h
+#include "Length.h"
+
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
return !(*this == o);
}
+ // FIXME: Remove these once we finish implementing the -webkit-flex property.
float m_widthPositiveFlex;
float m_widthNegativeFlex;
float m_heightPositiveFlex;
float m_heightNegativeFlex;
+ float m_positiveFlex;
+ float m_negativeFlex;
+ Length m_preferredSize;
+
int m_flexOrder;
unsigned m_flexPack : 3; // EFlexPack