Title: [102486] trunk
Revision
102486
Author
[email protected]
Date
2011-12-09 15:50:16 -0800 (Fri, 09 Dec 2011)

Log Message

add css parsing for flex-flow: wrap and wrap-reverse
https://bugs.webkit.org/show_bug.cgi?id=74008

Patch by Tony Chang <[email protected]> on 2011-12-09
Reviewed by Ojan Vafai.

Source/WebCore:

Also save 2 bits in StyleFlexibleBoxData by changing the size of m_flexFlow (there are only 4 enum values).

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Print the wrap value if it exists.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Parse a second token and put the values into a CSSValueList.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EFlexWrap):
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyFlexFlow::applyInheritValue): Does not inherit.
(WebCore::ApplyPropertyFlexFlow::applyInitialValue):
(WebCore::ApplyPropertyFlexFlow::applyValue): Special handler for setting two render style values from one
CSS property.
(WebCore::ApplyPropertyFlexFlow::createHandler):
(WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
* css/CSSValueKeywords.in:
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::flexWrap):
(WebCore::InheritedFlags::setFlexWrap):
(WebCore::InheritedFlags::initialFlexWrap):
* rendering/style/RenderStyleConstants.h: EFlexWrap to hold flex wrap values.
* rendering/style/StyleFlexibleBoxData.cpp:
(WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
(WebCore::StyleFlexibleBoxData::operator==):
* rendering/style/StyleFlexibleBoxData.h: 2 bits is enough to hold the 4 flexFlow values.

LayoutTests:

* css3/flexbox/css-properties-expected.txt:
* css3/flexbox/script-tests/css-properties.js: Test call combinations of flex-flow values.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (102485 => 102486)


--- trunk/LayoutTests/ChangeLog	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/LayoutTests/ChangeLog	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1,3 +1,13 @@
+2011-12-09  Tony Chang  <[email protected]>
+
+        add css parsing for flex-flow: wrap and wrap-reverse
+        https://bugs.webkit.org/show_bug.cgi?id=74008
+
+        Reviewed by Ojan Vafai.
+
+        * css3/flexbox/css-properties-expected.txt:
+        * css3/flexbox/script-tests/css-properties.js: Test call combinations of flex-flow values.
+
 2011-12-09  Adam Klein  <[email protected]>
 
         [MutationObservers] Add test for deliver-at-end-of-task semantics

Modified: trunk/LayoutTests/css3/flexbox/css-properties-expected.txt (102485 => 102486)


--- trunk/LayoutTests/css3/flexbox/css-properties-expected.txt	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/LayoutTests/css3/flexbox/css-properties-expected.txt	2011-12-09 23:50:16 UTC (rev 102486)
@@ -44,16 +44,52 @@
 PASS flexbox.style.webkitFlexAlign is ""
 PASS window.getComputedStyle(flexbox, null).webkitFlexAlign is "stretch"
 PASS flexbox.style.webkitFlexFlow is ""
-PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row nowrap"
 PASS flexbox.style.webkitFlexFlow is ""
+PASS flexbox.style.webkitFlexFlow is ""
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row nowrap"
+PASS flexbox.style.webkitFlexFlow is "row nowrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row nowrap"
+PASS flexbox.style.webkitFlexFlow is "row wrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row wrap"
+PASS flexbox.style.webkitFlexFlow is "row wrap-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row wrap-reverse"
 PASS flexbox.style.webkitFlexFlow is "row"
-PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row nowrap"
+PASS flexbox.style.webkitFlexFlow is "row nowrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row nowrap"
+PASS flexbox.style.webkitFlexFlow is "row wrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row wrap"
+PASS flexbox.style.webkitFlexFlow is "row wrap-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row wrap-reverse"
 PASS flexbox.style.webkitFlexFlow is "row-reverse"
-PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row-reverse nowrap"
+PASS flexbox.style.webkitFlexFlow is "row-reverse nowrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row-reverse nowrap"
+PASS flexbox.style.webkitFlexFlow is "row-reverse wrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row-reverse wrap"
+PASS flexbox.style.webkitFlexFlow is "row-reverse wrap-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "row-reverse wrap-reverse"
 PASS flexbox.style.webkitFlexFlow is "column"
-PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column nowrap"
+PASS flexbox.style.webkitFlexFlow is "column nowrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column nowrap"
+PASS flexbox.style.webkitFlexFlow is "column wrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column wrap"
+PASS flexbox.style.webkitFlexFlow is "column wrap-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column wrap-reverse"
 PASS flexbox.style.webkitFlexFlow is "column-reverse"
-PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column-reverse nowrap"
+PASS flexbox.style.webkitFlexFlow is "column-reverse nowrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column-reverse nowrap"
+PASS flexbox.style.webkitFlexFlow is "column-reverse wrap"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column-reverse wrap"
+PASS flexbox.style.webkitFlexFlow is "column-reverse wrap-reverse"
+PASS window.getComputedStyle(flexbox, null).webkitFlexFlow is "column-reverse wrap-reverse"
+PASS flexbox.style.webkitFlexFlow is ""
+PASS flexbox.style.webkitFlexFlow is ""
+PASS flexbox.style.webkitFlexFlow is ""
+PASS flexbox.style.webkitFlexFlow is ""
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/css3/flexbox/script-tests/css-properties.js (102485 => 102486)


--- trunk/LayoutTests/css3/flexbox/script-tests/css-properties.js	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/LayoutTests/css3/flexbox/script-tests/css-properties.js	2011-12-09 23:50:16 UTC (rev 102486)
@@ -101,25 +101,33 @@
 shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexAlign', 'stretch');
 
 shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'row');
+shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'row nowrap');
 
 flexbox.style.webkitFlexFlow = 'foo';
 shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
 
-flexbox.style.webkitFlexFlow = 'row';
-shouldBeEqualToString('flexbox.style.webkitFlexFlow', 'row');
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'row');
+var flows = ['', 'row', 'row-reverse', 'column', 'column-reverse'];
+var wraps = ['', 'nowrap', 'wrap', 'wrap-reverse'];
+flows.forEach(function(flow) {
+    wraps.forEach(function(wrap) {
+        flexbox.style.webkitFlexFlow = flow + ' ' + wrap;
+        shouldBeEqualToString('flexbox.style.webkitFlexFlow', (flow + ' ' + wrap).replace(/^ /, '').replace(/ $/, ''));
+        if (!flow)
+            flow = 'row';
+        if (!wrap)
+            wrap = 'nowrap';
+        shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', flow + ' ' + wrap);
+    });
+});
 
-flexbox.style.webkitFlexFlow = 'row-reverse';
-shouldBeEqualToString('flexbox.style.webkitFlexFlow', 'row-reverse');
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'row-reverse');
+flexbox.style.webkitFlexFlow = '';
+flexbox.style.webkitFlexFlow = 'wrap wrap-reverse';
+shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
+flexbox.style.webkitFlexFlow = 'wrap-reverse column';
+shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
+flexbox.style.webkitFlexFlow = 'wrap row';
+shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
+flexbox.style.webkitFlexFlow = 'column row';
+shouldBeEqualToString('flexbox.style.webkitFlexFlow', '');
 
-flexbox.style.webkitFlexFlow = 'column';
-shouldBeEqualToString('flexbox.style.webkitFlexFlow', 'column');
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'column');
-
-flexbox.style.webkitFlexFlow = 'column-reverse';
-shouldBeEqualToString('flexbox.style.webkitFlexFlow', 'column-reverse');
-shouldBeEqualToString('window.getComputedStyle(flexbox, null).webkitFlexFlow', 'column-reverse');
-
 successfullyParsed = true;

Modified: trunk/Source/WebCore/ChangeLog (102485 => 102486)


--- trunk/Source/WebCore/ChangeLog	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/ChangeLog	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1,3 +1,37 @@
+2011-12-09  Tony Chang  <[email protected]>
+
+        add css parsing for flex-flow: wrap and wrap-reverse
+        https://bugs.webkit.org/show_bug.cgi?id=74008
+
+        Reviewed by Ojan Vafai.
+
+        Also save 2 bits in StyleFlexibleBoxData by changing the size of m_flexFlow (there are only 4 enum values).
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Print the wrap value if it exists.
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseValue): Parse a second token and put the values into a CSSValueList.
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator EFlexWrap):
+        * css/CSSStyleApplyProperty.cpp:
+        (WebCore::ApplyPropertyFlexFlow::applyInheritValue): Does not inherit.
+        (WebCore::ApplyPropertyFlexFlow::applyInitialValue):
+        (WebCore::ApplyPropertyFlexFlow::applyValue): Special handler for setting two render style values from one
+        CSS property.
+        (WebCore::ApplyPropertyFlexFlow::createHandler):
+        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
+        * css/CSSValueKeywords.in:
+        * rendering/style/RenderStyle.h:
+        (WebCore::InheritedFlags::flexWrap):
+        (WebCore::InheritedFlags::setFlexWrap):
+        (WebCore::InheritedFlags::initialFlexWrap):
+        * rendering/style/RenderStyleConstants.h: EFlexWrap to hold flex wrap values.
+        * rendering/style/StyleFlexibleBoxData.cpp:
+        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
+        (WebCore::StyleFlexibleBoxData::operator==):
+        * rendering/style/StyleFlexibleBoxData.h: 2 bits is enough to hold the 4 flexFlow values.
+
 2011-12-09  KwangHyuk Kim  <[email protected]>
 
         [EFL] Add RefPtrEfl specialization for evas_object.

Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (102485 => 102486)


--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1484,8 +1484,12 @@
             return cssValuePool->createValue(style->flexPack());
         case CSSPropertyWebkitFlexAlign:
             return cssValuePool->createValue(style->flexAlign());
-        case CSSPropertyWebkitFlexFlow:
-            return cssValuePool->createValue(style->flexFlow());
+        case CSSPropertyWebkitFlexFlow: {
+            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
+            list->append(cssValuePool->createValue(style->flexFlow()));
+            list->append(cssValuePool->createValue(style->flexWrap()));
+            return list.release();
+        }
         case CSSPropertyFloat:
             return cssValuePool->createValue(style->floating());
         case CSSPropertyFont: {

Modified: trunk/Source/WebCore/css/CSSParser.cpp (102485 => 102486)


--- trunk/Source/WebCore/css/CSSParser.cpp	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1621,8 +1621,23 @@
         validPrimitive = id == CSSValueStart || id == CSSValueEnd || id == CSSValueCenter || id == CSSValueBaseline || id == CSSValueStretch;
         break;
     case CSSPropertyWebkitFlexFlow:
-        // FIXME: -webkit-flex-flow takes a second "wrap" value.
+        // FIXME: Use parseShorthand once we add flex-direction and flex-wrap.
+        // [ row | row-reverse | column | column-reverse ] || [ nowrap | wrap | wrap-reverse ]?
         validPrimitive = id == CSSValueRow || id == CSSValueRowReverse || id == CSSValueColumn || id == CSSValueColumnReverse;
+        if (!validPrimitive)
+            validPrimitive = id == CSSValueNowrap || id == CSSValueWrap || id == CSSValueWrapReverse;
+        else if (validPrimitive && num == 2) {
+            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
+            list->append(cssValuePool()->createIdentifierValue(id));
+
+            value = m_valueList->next();
+            if (value->id != CSSValueNowrap && value->id != CSSValueWrap && value->id != CSSValueWrapReverse)
+                return false;
+
+            list->append(cssValuePool()->createIdentifierValue(value->id));
+            addProperty(propId, list, important);
+            return true;
+        }
         break;
     case CSSPropertyWebkitMarquee: {
         const int properties[5] = { CSSPropertyWebkitMarqueeDirection, CSSPropertyWebkitMarqueeIncrement,

Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (102485 => 102486)


--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1237,6 +1237,38 @@
     }
 }
 
+template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFlexWrap e)
+    : CSSValue(PrimitiveClass)
+{
+    m_primitiveUnitType = CSS_IDENT;
+    switch (e) {
+    case FlexNoWrap:
+        m_value.ident = CSSValueNowrap;
+        break;
+    case FlexWrap:
+        m_value.ident = CSSValueWrap;
+        break;
+    case FlexWrapReverse:
+        m_value.ident = CSSValueWrapReverse;
+        break;
+    }
+}
+
+template<> inline CSSPrimitiveValue::operator EFlexWrap() const
+{
+    switch (m_value.ident) {
+    case CSSValueNowrap:
+        return FlexNoWrap;
+    case CSSValueWrap:
+        return FlexWrap;
+    case CSSValueWrapReverse:
+        return FlexWrapReverse;
+    default:
+        ASSERT_NOT_REACHED();
+        return FlexNoWrap;
+    }
+}
+
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e)
     : CSSValue(PrimitiveClass)
 {

Modified: trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp (102485 => 102486)


--- trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp	2011-12-09 23:50:16 UTC (rev 102486)
@@ -1258,6 +1258,38 @@
     }
 };
 
+class ApplyPropertyFlexFlow {
+public:
+    static void applyInheritValue(CSSStyleSelector*) { }
+
+    static void applyInitialValue(CSSStyleSelector* selector)
+    {
+        selector->style()->setFlexFlow(RenderStyle::initialFlexFlow());
+        selector->style()->setFlexWrap(RenderStyle::initialFlexWrap());
+    }
+
+    static void applyValue(CSSStyleSelector* selector, CSSValue* value)
+    {
+        if (value->isPrimitiveValue()) {
+            selector->style()->setFlexFlow(*static_cast<CSSPrimitiveValue*>(value));
+            return;
+        }
+        if (value->isValueList()) {
+            CSSValueList* list = static_cast<CSSValueList*>(value);
+            if (list->length() != 2)
+                return;
+
+            selector->style()->setFlexFlow(*static_cast<CSSPrimitiveValue*>(list->itemWithoutBoundsCheck(0)));
+            selector->style()->setFlexWrap(*static_cast<CSSPrimitiveValue*>(list->itemWithoutBoundsCheck(1)));
+        }
+    }
+
+    static PropertyHandler createHandler()
+    {
+        return PropertyHandler(&applyInheritValue, &applyInitialValue, &applyValue);
+    }
+};
+
 const CSSStyleApplyProperty& CSSStyleApplyProperty::sharedCSSStyleApplyProperty()
 {
     DEFINE_STATIC_LOCAL(CSSStyleApplyProperty, cssStyleApplyPropertyInstance, ());
@@ -1398,7 +1430,7 @@
     setPropertyHandler(CSSPropertyWebkitFlexOrder, ApplyPropertyDefault<int, &RenderStyle::flexOrder, int, &RenderStyle::setFlexOrder, int, &RenderStyle::initialFlexOrder>::createHandler());
     setPropertyHandler(CSSPropertyWebkitFlexPack, ApplyPropertyDefault<EFlexPack, &RenderStyle::flexPack, EFlexPack, &RenderStyle::setFlexPack, EFlexPack, &RenderStyle::initialFlexPack>::createHandler());
     setPropertyHandler(CSSPropertyWebkitFlexAlign, ApplyPropertyDefault<EFlexAlign, &RenderStyle::flexAlign, EFlexAlign, &RenderStyle::setFlexAlign, EFlexAlign, &RenderStyle::initialFlexAlign>::createHandler());
-    setPropertyHandler(CSSPropertyWebkitFlexFlow, ApplyPropertyDefault<EFlexFlow, &RenderStyle::flexFlow, EFlexFlow, &RenderStyle::setFlexFlow, EFlexFlow, &RenderStyle::initialFlexFlow>::createHandler());
+    setPropertyHandler(CSSPropertyWebkitFlexFlow, ApplyPropertyFlexFlow::createHandler());
 
     setPropertyHandler(CSSPropertyFontStyle, ApplyPropertyFont<FontItalic, &FontDescription::italic, &FontDescription::setItalic, FontItalicOff>::createHandler());
     setPropertyHandler(CSSPropertyFontVariant, ApplyPropertyFont<FontSmallCaps, &FontDescription::smallCaps, &FontDescription::setSmallCaps, FontSmallCapsOff>::createHandler());

Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (102485 => 102486)


--- trunk/Source/WebCore/css/CSSValueKeywords.in	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in	2011-12-09 23:50:16 UTC (rev 102486)
@@ -482,11 +482,13 @@
 // stretch
 
 // CSS_PROP_FLEX_FLOW
-// FIXME: Add the wrap values.
 row
 row-reverse
 column
 column-reverse
+// nowrap
+// wrap
+wrap-reverse
 
 // CSS_PROP_MARQUEE_DIRECTION
 forwards

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (102485 => 102486)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2011-12-09 23:50:16 UTC (rev 102486)
@@ -727,6 +727,7 @@
     EFlexAlign flexAlign() const { return static_cast<EFlexAlign>(rareNonInheritedData->m_flexibleBox->m_flexAlign); }
     EFlexFlow flexFlow() const { return static_cast<EFlexFlow>(rareNonInheritedData->m_flexibleBox->m_flexFlow); }
     bool isColumnFlexFlow() const { return flexFlow() == FlowColumn || flexFlow() == FlowColumnReverse; }
+    EFlexWrap flexWrap() const { return static_cast<EFlexWrap>(rareNonInheritedData->m_flexibleBox->m_flexWrap); }
 
 #if ENABLE(CSS_GRID_LAYOUT)
     const Vector<Length>& gridColumns() const { return rareNonInheritedData->m_grid->m_gridColumns; }
@@ -1147,6 +1148,7 @@
     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); }
     void setFlexFlow(EFlexFlow flow) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_flexFlow, flow); }
+    void setFlexWrap(EFlexWrap w) { SET_VAR(rareNonInheritedData.access()->m_flexibleBox, m_flexWrap, w); }
 #if ENABLE(CSS_GRID_LAYOUT)
     void setGridColumns(const Vector<Length>& lengths) { SET_VAR(rareNonInheritedData.access()->m_grid, m_gridColumns, lengths); }
     void setGridRows(const Vector<Length>& lengths) { SET_VAR(rareNonInheritedData.access()->m_grid, m_gridRows, lengths); }
@@ -1470,6 +1472,7 @@
     static EFlexPack initialFlexPack() { return PackStart; }
     static EFlexAlign initialFlexAlign() { return AlignStretch; }
     static EFlexFlow initialFlexFlow() { return FlowRow; }
+    static EFlexWrap initialFlexWrap() { return FlexNoWrap; }
     static int initialMarqueeLoopCount() { return -1; }
     static int initialMarqueeSpeed() { return 85; }
     static Length initialMarqueeIncrement() { return Length(6, Fixed); }

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (102485 => 102486)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2011-12-09 23:50:16 UTC (rev 102486)
@@ -177,7 +177,8 @@
 
 enum EFlexPack { PackStart, PackEnd, PackCenter, PackJustify };
 enum EFlexAlign { AlignStart, AlignEnd, AlignCenter, AlignStretch, AlignBaseline };
-enum EFlexFlow { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse};
+enum EFlexFlow { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse };
+enum EFlexWrap { FlexNoWrap, FlexWrap, FlexWrapReverse };
 
 enum ETextSecurity {
     TSNONE, TSDISC, TSCIRCLE, TSSQUARE

Modified: trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp (102485 => 102486)


--- trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp	2011-12-09 23:50:16 UTC (rev 102486)
@@ -39,6 +39,7 @@
     , m_flexPack(RenderStyle::initialFlexPack())
     , m_flexAlign(RenderStyle::initialFlexAlign())
     , m_flexFlow(RenderStyle::initialFlexFlow())
+    , m_flexWrap(RenderStyle::initialFlexWrap())
 {
 }
 
@@ -52,6 +53,7 @@
     , m_flexPack(o.m_flexPack)
     , m_flexAlign(o.m_flexAlign)
     , m_flexFlow(o.m_flexFlow)
+    , m_flexWrap(o.m_flexWrap)
 {
 }
 
@@ -60,7 +62,7 @@
     return m_widthPositiveFlex == o.m_widthPositiveFlex && m_widthNegativeFlex == o.m_widthNegativeFlex
         && m_heightPositiveFlex == o.m_heightPositiveFlex && m_heightNegativeFlex == o.m_heightNegativeFlex
         && m_flexOrder == o.m_flexOrder && m_flexPack == o.m_flexPack && m_flexAlign == o.m_flexAlign
-        && m_flexFlow == o.m_flexFlow;
+        && m_flexFlow == o.m_flexFlow && m_flexWrap == o.m_flexWrap;
 }
 
 }

Modified: trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h (102485 => 102486)


--- trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h	2011-12-09 23:47:42 UTC (rev 102485)
+++ trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h	2011-12-09 23:50:16 UTC (rev 102486)
@@ -51,7 +51,8 @@
 
     unsigned m_flexPack : 2; // EFlexPack
     unsigned m_flexAlign : 3; // EFlexAlign
-    unsigned m_flexFlow : 4; // EFlexFlow
+    unsigned m_flexFlow : 2; // EFlexFlow
+    unsigned m_flexWrap : 2; // EFlexWrap
 
 private:
     StyleFlexibleBoxData();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to