Title: [200182] trunk/Source/WebCore
Revision
200182
Author
[email protected]
Date
2016-04-28 02:27:55 -0700 (Thu, 28 Apr 2016)

Log Message

[css-grid] Store auto-repeat information in style
https://bugs.webkit.org/show_bug.cgi?id=157097

Reviewed by Darin Adler.

This is the second step to implement auto-repeat. This patch provides the necessary
machinery to store the auto-repeat data extracted by the parser in the RenderStyle class. We
are not doing anything with that information yet, it will be used later to compute the
number of auto-repeat tracks in a follow up patch.

No new tests required as there is no change in behavior yet (we're just storing the info we
already get from the parser).

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList): Check also that the auto-repeat list of tracks is empty.
* css/StyleBuilderConverter.h:
(WebCore::createGridLineNamesList): Refactored from createGridTrackList.
(WebCore::StyleBuilderConverter::createGridTrackList): Extract auto-repeat data from the
parser. Also gathered all the out arguments in a single new struct called TracksData.
* css/StyleBuilderCustom.h: Added new macro SET_TRACKS_DATA which properly sets the info
from TracksData struct into style.
(WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateColumns): Store auto-repeat data
in RenderStyle.
(WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateRows): Ditto.
* rendering/style/RenderStyle.h: Add methods and attributes for auto-repeat data.
* rendering/style/RenderStyleConstants.h: New AutoRepeatType enumerated type.
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData): Add auto-repeat data.
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==): Check also auto-repeat data.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (200181 => 200182)


--- trunk/Source/WebCore/ChangeLog	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/ChangeLog	2016-04-28 09:27:55 UTC (rev 200182)
@@ -1,3 +1,36 @@
+2016-04-28  Sergio Villar Senin  <[email protected]>
+
+        [css-grid] Store auto-repeat information in style
+        https://bugs.webkit.org/show_bug.cgi?id=157097
+
+        Reviewed by Darin Adler.
+
+        This is the second step to implement auto-repeat. This patch provides the necessary
+        machinery to store the auto-repeat data extracted by the parser in the RenderStyle class. We
+        are not doing anything with that information yet, it will be used later to compute the
+        number of auto-repeat tracks in a follow up patch.
+
+        No new tests required as there is no change in behavior yet (we're just storing the info we
+        already get from the parser).
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::valueForGridTrackList): Check also that the auto-repeat list of tracks is empty.
+        * css/StyleBuilderConverter.h:
+        (WebCore::createGridLineNamesList): Refactored from createGridTrackList.
+        (WebCore::StyleBuilderConverter::createGridTrackList): Extract auto-repeat data from the
+        parser. Also gathered all the out arguments in a single new struct called TracksData.
+        * css/StyleBuilderCustom.h: Added new macro SET_TRACKS_DATA which properly sets the info
+        from TracksData struct into style.
+        (WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateColumns): Store auto-repeat data
+        in RenderStyle.
+        (WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateRows): Ditto.
+        * rendering/style/RenderStyle.h: Add methods and attributes for auto-repeat data.
+        * rendering/style/RenderStyleConstants.h: New AutoRepeatType enumerated type.
+        * rendering/style/StyleGridData.cpp:
+        (WebCore::StyleGridData::StyleGridData): Add auto-repeat data.
+        * rendering/style/StyleGridData.h:
+        (WebCore::StyleGridData::operator==): Check also auto-repeat data.
+
 2016-04-28  Manuel Rego Casasnovas  <[email protected]>
 
         [css-grid] Fix alignment with content distribution

Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (200181 => 200182)


--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2016-04-28 09:27:55 UTC (rev 200182)
@@ -1049,12 +1049,14 @@
 
 static Ref<CSSValue> valueForGridTrackList(GridTrackSizingDirection direction, RenderObject* renderer, const RenderStyle& style)
 {
-    const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gridColumns() : style.gridRows();
-    const OrderedNamedGridLinesMap& orderedNamedGridLines = direction == ForColumns ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines();
+    bool isRowAxis = direction == ForColumns;
     bool isRenderGrid = is<RenderGrid>(renderer);
+    auto& trackSizes = isRowAxis ? style.gridColumns() : style.gridRows();
+    auto& autoRepeatTrackSizes = isRowAxis ? style.gridAutoRepeatColumns() : style.gridAutoRepeatRows();
+    auto& orderedNamedGridLines = isRowAxis ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines();
 
     // Handle the 'none' case.
-    bool trackListIsEmpty = trackSizes.isEmpty();
+    bool trackListIsEmpty = trackSizes.isEmpty() && autoRepeatTrackSizes.isEmpty();
     if (isRenderGrid && trackListIsEmpty) {
         // For grids we should consider every listed track, whether implicitly or explicitly created. If we don't have
         // any explicit track and there are no children then there are no implicit tracks. We cannot simply check the

Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (200181 => 200182)


--- trunk/Source/WebCore/css/StyleBuilderConverter.h	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h	2016-04-28 09:27:55 UTC (rev 200182)
@@ -32,6 +32,7 @@
 #include "CSSContentDistributionValue.h"
 #include "CSSFontFeatureValue.h"
 #include "CSSFunctionValue.h"
+#include "CSSGridAutoRepeatValue.h"
 #include "CSSGridLineNamesValue.h"
 #include "CSSGridTemplateAreasValue.h"
 #include "CSSImageGeneratorValue.h"
@@ -156,7 +157,8 @@
 #if ENABLE(CSS_GRID_LAYOUT)
     static GridLength createGridTrackBreadth(CSSPrimitiveValue&, StyleResolver&);
     static GridTrackSize createGridTrackSize(CSSValue&, StyleResolver&);
-    static bool createGridTrackList(CSSValue&, Vector<GridTrackSize>& trackSizes, NamedGridLinesMap&, OrderedNamedGridLinesMap&, StyleResolver&);
+    struct TracksData;
+    static bool createGridTrackList(CSSValue&, TracksData&, StyleResolver&);
     static bool createGridPosition(CSSValue&, GridPosition&);
     static void createImplicitNamedGridLinesFromGridArea(const NamedGridAreaMap&, NamedGridLinesMap&, GridTrackSizingDirection);
 #endif // ENABLE(CSS_GRID_LAYOUT)
@@ -852,8 +854,36 @@
     return GridTrackSize(minTrackBreadth, maxTrackBreadth);
 }
 
-inline bool StyleBuilderConverter::createGridTrackList(CSSValue& value, Vector<GridTrackSize>& trackSizes, NamedGridLinesMap& namedGridLines, OrderedNamedGridLinesMap& orderedNamedGridLines, StyleResolver& styleResolver)
+static void createGridLineNamesList(const CSSValue& value, unsigned currentNamedGridLine, NamedGridLinesMap& namedGridLines, OrderedNamedGridLinesMap& orderedNamedGridLines)
 {
+    ASSERT(value.isGridLineNamesValue());
+
+    for (auto& namedGridLineValue : downcast<CSSGridLineNamesValue>(value)) {
+        String namedGridLine = downcast<CSSPrimitiveValue>(namedGridLineValue.get()).getStringValue();
+        auto result = namedGridLines.add(namedGridLine, Vector<unsigned>());
+        result.iterator->value.append(currentNamedGridLine);
+        auto orderedResult = orderedNamedGridLines.add(currentNamedGridLine, Vector<String>());
+        orderedResult.iterator->value.append(namedGridLine);
+    }
+}
+
+struct StyleBuilderConverter::TracksData {
+    WTF_MAKE_NONCOPYABLE(TracksData); WTF_MAKE_FAST_ALLOCATED;
+public:
+    TracksData() = default;
+
+    Vector<GridTrackSize> m_trackSizes;
+    NamedGridLinesMap m_namedGridLines;
+    OrderedNamedGridLinesMap m_orderedNamedGridLines;
+    Vector<GridTrackSize> m_autoRepeatTrackSizes;
+    NamedGridLinesMap m_autoRepeatNamedGridLines;
+    OrderedNamedGridLinesMap m_autoRepeatOrderedNamedGridLines;
+    unsigned m_autoRepeatInsertionPoint { RenderStyle::initialGridAutoRepeatInsertionPoint() };
+    AutoRepeatType m_autoRepeatType { RenderStyle::initialGridAutoRepeatType() };
+};
+
+inline bool StyleBuilderConverter::createGridTrackList(CSSValue& value, TracksData& tracksData, StyleResolver& styleResolver)
+{
     // Handle 'none'.
     if (is<CSSPrimitiveValue>(value))
         return downcast<CSSPrimitiveValue>(value).getValueID() == CSSValueNone;
@@ -864,23 +894,35 @@
     unsigned currentNamedGridLine = 0;
     for (auto& currentValue : downcast<CSSValueList>(value)) {
         if (is<CSSGridLineNamesValue>(currentValue.get())) {
-            for (auto& currentGridLineName : downcast<CSSGridLineNamesValue>(currentValue.get())) {
-                String namedGridLine = downcast<CSSPrimitiveValue>(currentGridLineName.get()).getStringValue();
-                NamedGridLinesMap::AddResult result = namedGridLines.add(namedGridLine, Vector<unsigned>());
-                result.iterator->value.append(currentNamedGridLine);
-                OrderedNamedGridLinesMap::AddResult orderedResult = orderedNamedGridLines.add(currentNamedGridLine, Vector<String>());
-                orderedResult.iterator->value.append(namedGridLine);
+            createGridLineNamesList(currentValue.get(), currentNamedGridLine, tracksData.m_namedGridLines, tracksData.m_orderedNamedGridLines);
+            continue;
+        }
+
+        if (is<CSSGridAutoRepeatValue>(currentValue)) {
+            ASSERT(tracksData.m_autoRepeatTrackSizes.isEmpty());
+            unsigned autoRepeatIndex = 0;
+            CSSValueID autoRepeatID = downcast<CSSGridAutoRepeatValue>(currentValue.get()).autoRepeatID();
+            ASSERT(autoRepeatID == CSSValueAutoFill || autoRepeatID == CSSValueAutoFit);
+            tracksData.m_autoRepeatType = autoRepeatID == CSSValueAutoFill ? AutoFill : AutoFit;
+            for (auto& autoRepeatValue : downcast<CSSValueList>(currentValue.get())) {
+                if (is<CSSGridLineNamesValue>(autoRepeatValue.get())) {
+                    createGridLineNamesList(autoRepeatValue.get(), autoRepeatIndex, tracksData.m_autoRepeatNamedGridLines, tracksData.m_autoRepeatOrderedNamedGridLines);
+                    continue;
+                }
+                ++autoRepeatIndex;
+                tracksData.m_autoRepeatTrackSizes.append(createGridTrackSize(autoRepeatValue.get(), styleResolver));
             }
+            tracksData.m_autoRepeatInsertionPoint = currentNamedGridLine++;
             continue;
         }
 
         ++currentNamedGridLine;
-        trackSizes.append(createGridTrackSize(currentValue, styleResolver));
+        tracksData.m_trackSizes.append(createGridTrackSize(currentValue, styleResolver));
     }
 
     // The parser should have rejected any <track-list> without any <track-size> as
     // this is not conformant to the syntax.
-    ASSERT(!trackSizes.isEmpty());
+    ASSERT(!tracksData.m_trackSizes.isEmpty() || !tracksData.m_autoRepeatTrackSizes.isEmpty());
     return true;
 }
 

Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (200181 => 200182)


--- trunk/Source/WebCore/css/StyleBuilderCustom.h	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h	2016-04-28 09:27:55 UTC (rev 200182)
@@ -1649,20 +1649,26 @@
     styleResolver.style()->setOrderedNamedGridColumnLines(styleResolver.parentStyle()->orderedNamedGridColumnLines());
 }
 
+#define SET_TRACKS_DATA(tracksData, style, TrackType) \
+    style->setGrid##TrackType##s(tracksData.m_trackSizes); \
+    style->setNamedGrid##TrackType##Lines(tracksData.m_namedGridLines); \
+    style->setOrderedNamedGrid##TrackType##Lines(tracksData.m_orderedNamedGridLines); \
+    style->setGridAutoRepeat##TrackType##s(tracksData.m_autoRepeatTrackSizes); \
+    style->setGridAutoRepeat##TrackType##sInsertionPoint(tracksData.m_autoRepeatInsertionPoint); \
+    style->setAutoRepeatNamedGrid##TrackType##Lines(tracksData.m_autoRepeatNamedGridLines); \
+    style->setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData.m_autoRepeatOrderedNamedGridLines); \
+    style->setGridAutoRepeat##TrackType##sType(tracksData.m_autoRepeatType);
+
 inline void StyleBuilderCustom::applyValueWebkitGridTemplateColumns(StyleResolver& styleResolver, CSSValue& value)
 {
-    Vector<GridTrackSize> trackSizes;
-    NamedGridLinesMap namedGridLines;
-    OrderedNamedGridLinesMap orderedNamedGridLines;
-    if (!StyleBuilderConverter::createGridTrackList(value, trackSizes, namedGridLines, orderedNamedGridLines, styleResolver))
+    StyleBuilderConverter::TracksData tracksData;
+    if (!StyleBuilderConverter::createGridTrackList(value, tracksData, styleResolver))
         return;
     const NamedGridAreaMap& namedGridAreas = styleResolver.style()->namedGridArea();
     if (!namedGridAreas.isEmpty())
-        StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLines, ForColumns);
+        StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(namedGridAreas, tracksData.m_namedGridLines, ForColumns);
 
-    styleResolver.style()->setGridColumns(trackSizes);
-    styleResolver.style()->setNamedGridColumnLines(namedGridLines);
-    styleResolver.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines);
+    SET_TRACKS_DATA(tracksData, styleResolver.style(), Column);
 }
 
 inline void StyleBuilderCustom::applyInitialWebkitGridTemplateRows(StyleResolver& styleResolver)
@@ -1681,18 +1687,14 @@
 
 inline void StyleBuilderCustom::applyValueWebkitGridTemplateRows(StyleResolver& styleResolver, CSSValue& value)
 {
-    Vector<GridTrackSize> trackSizes;
-    NamedGridLinesMap namedGridLines;
-    OrderedNamedGridLinesMap orderedNamedGridLines;
-    if (!StyleBuilderConverter::createGridTrackList(value, trackSizes, namedGridLines, orderedNamedGridLines, styleResolver))
+    StyleBuilderConverter::TracksData tracksData;
+    if (!StyleBuilderConverter::createGridTrackList(value, tracksData, styleResolver))
         return;
     const NamedGridAreaMap& namedGridAreas = styleResolver.style()->namedGridArea();
     if (!namedGridAreas.isEmpty())
-        StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLines, ForRows);
+        StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(namedGridAreas, tracksData.m_namedGridLines, ForRows);
 
-    styleResolver.style()->setGridRows(trackSizes);
-    styleResolver.style()->setNamedGridRowLines(namedGridLines);
-    styleResolver.style()->setOrderedNamedGridRowLines(orderedNamedGridLines);
+    SET_TRACKS_DATA(tracksData, styleResolver.style(), Row);
 }
 #endif // ENABLE(CSS_GRID_LAYOUT)
 

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (200181 => 200182)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2016-04-28 09:27:55 UTC (rev 200182)
@@ -958,10 +958,20 @@
 #if ENABLE(CSS_GRID_LAYOUT)
     const Vector<GridTrackSize>& gridColumns() const { return rareNonInheritedData->m_grid->m_gridColumns; }
     const Vector<GridTrackSize>& gridRows() const { return rareNonInheritedData->m_grid->m_gridRows; }
+    const Vector<GridTrackSize>& gridAutoRepeatColumns() const { return rareNonInheritedData->m_grid->m_gridAutoRepeatColumns; }
+    const Vector<GridTrackSize>& gridAutoRepeatRows() const { return rareNonInheritedData->m_grid->m_gridAutoRepeatRows; }
+    unsigned gridAutoRepeatColumnsInsertionPoint() const { return rareNonInheritedData->m_grid->m_autoRepeatColumnsInsertionPoint; }
+    unsigned gridAutoRepeatRowsInsertionPoint() const { return rareNonInheritedData->m_grid->m_autoRepeatRowsInsertionPoint; }
+    AutoRepeatType gridAutoRepeatColumnsType() const  { return rareNonInheritedData->m_grid->m_autoRepeatColumnsType; }
+    AutoRepeatType gridAutoRepeatRowsType() const  { return rareNonInheritedData->m_grid->m_autoRepeatRowsType; }
     const NamedGridLinesMap& namedGridColumnLines() const { return rareNonInheritedData->m_grid->m_namedGridColumnLines; }
     const NamedGridLinesMap& namedGridRowLines() const { return rareNonInheritedData->m_grid->m_namedGridRowLines; }
     const OrderedNamedGridLinesMap& orderedNamedGridColumnLines() const { return rareNonInheritedData->m_grid->m_orderedNamedGridColumnLines; }
     const OrderedNamedGridLinesMap& orderedNamedGridRowLines() const { return rareNonInheritedData->m_grid->m_orderedNamedGridRowLines; }
+    const NamedGridLinesMap& autoRepeatNamedGridColumnLines() const { return rareNonInheritedData->m_grid->m_autoRepeatNamedGridColumnLines; }
+    const NamedGridLinesMap& autoRepeatNamedGridRowLines() const { return rareNonInheritedData->m_grid->m_autoRepeatNamedGridRowLines; }
+    const OrderedNamedGridLinesMap& autoRepeatOrderedNamedGridColumnLines() const { return rareNonInheritedData->m_grid->m_autoRepeatOrderedNamedGridColumnLines; }
+    const OrderedNamedGridLinesMap& autoRepeatOrderedNamedGridRowLines() const { return rareNonInheritedData->m_grid->m_autoRepeatOrderedNamedGridRowLines; }
     const NamedGridAreaMap& namedGridArea() const { return rareNonInheritedData->m_grid->m_namedGridArea; }
     size_t namedGridAreaRowCount() const { return rareNonInheritedData->m_grid->m_namedGridAreaRowCount; }
     size_t namedGridAreaColumnCount() const { return rareNonInheritedData->m_grid->m_namedGridAreaColumnCount; }
@@ -1555,10 +1565,20 @@
     void setGridAutoRows(const GridTrackSize& length) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRows, length); }
     void setGridColumns(const Vector<GridTrackSize>& lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridColumns, lengths); }
     void setGridRows(const Vector<GridTrackSize>& lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridRows, lengths); }
+    void setGridAutoRepeatColumns(const Vector<GridTrackSize>& lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRepeatColumns, lengths); }
+    void setGridAutoRepeatRows(const Vector<GridTrackSize>& lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRepeatRows, lengths); }
+    void setGridAutoRepeatColumnsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatColumnsInsertionPoint, insertionPoint); }
+    void setGridAutoRepeatRowsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatRowsInsertionPoint, insertionPoint); }
+    void setGridAutoRepeatColumnsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatColumnsType, autoRepeatType); }
+    void setGridAutoRepeatRowsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatRowsType, autoRepeatType); }
     void setNamedGridColumnLines(const NamedGridLinesMap& namedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridColumnLines, namedGridColumnLines); }
     void setNamedGridRowLines(const NamedGridLinesMap& namedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridRowLines, namedGridRowLines); }
     void setOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap& orderedNamedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_orderedNamedGridColumnLines, orderedNamedGridColumnLines); }
     void setOrderedNamedGridRowLines(const OrderedNamedGridLinesMap& orderedNamedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_orderedNamedGridRowLines, orderedNamedGridRowLines); }
+    void setAutoRepeatNamedGridColumnLines(const NamedGridLinesMap& namedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatNamedGridColumnLines, namedGridColumnLines); }
+    void setAutoRepeatNamedGridRowLines(const NamedGridLinesMap& namedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatNamedGridRowLines, namedGridRowLines); }
+    void setAutoRepeatOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap& orderedNamedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatOrderedNamedGridColumnLines, orderedNamedGridColumnLines); }
+    void setAutoRepeatOrderedNamedGridRowLines(const OrderedNamedGridLinesMap& orderedNamedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatOrderedNamedGridRowLines, orderedNamedGridRowLines); }
     void setNamedGridArea(const NamedGridAreaMap& namedGridArea) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridArea, namedGridArea); }
     void setNamedGridAreaRowCount(size_t rowCount) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridAreaRowCount, rowCount); }
     void setNamedGridAreaColumnCount(size_t columnCount) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridAreaColumnCount, columnCount); }
@@ -2068,6 +2088,10 @@
     static Vector<GridTrackSize> initialGridColumns() { return Vector<GridTrackSize>(); }
     static Vector<GridTrackSize> initialGridRows() { return Vector<GridTrackSize>(); }
 
+    static Vector<GridTrackSize> initialGridAutoRepeatTracks() { return Vector<GridTrackSize>(); }
+    static unsigned initialGridAutoRepeatInsertionPoint() { return 0; }
+    static AutoRepeatType initialGridAutoRepeatType() { return NoAutoRepeat; }
+
     static GridAutoFlow initialGridAutoFlow() { return AutoFlowRow; }
 
     static GridTrackSize initialGridAutoColumns() { return GridTrackSize(Length(Auto)); }

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (200181 => 200182)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2016-04-28 09:27:55 UTC (rev 200182)
@@ -653,6 +653,12 @@
     AutoFlowRowDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionRow,
     AutoFlowColumnDense = InternalAutoFlowAlgorithmDense | InternalAutoFlowDirectionColumn
 };
+
+enum AutoRepeatType {
+    NoAutoRepeat,
+    AutoFill,
+    AutoFit
+};
 #endif
 
 // Reasonable maximum to prevent insane font sizes from causing crashes on some platforms (such as Windows).

Modified: trunk/Source/WebCore/rendering/style/StyleGridData.cpp (200181 => 200182)


--- trunk/Source/WebCore/rendering/style/StyleGridData.cpp	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/rendering/style/StyleGridData.cpp	2016-04-28 09:27:55 UTC (rev 200182)
@@ -39,6 +39,10 @@
     , m_namedGridRowLines(RenderStyle::initialNamedGridRowLines())
     , m_orderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
     , m_orderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
+    , m_autoRepeatNamedGridColumnLines(RenderStyle::initialNamedGridColumnLines())
+    , m_autoRepeatNamedGridRowLines(RenderStyle::initialNamedGridRowLines())
+    , m_autoRepeatOrderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
+    , m_autoRepeatOrderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
     , m_gridAutoFlow(RenderStyle::initialGridAutoFlow())
     , m_gridAutoRows(RenderStyle::initialGridAutoRows())
     , m_gridAutoColumns(RenderStyle::initialGridAutoColumns())
@@ -47,6 +51,12 @@
     , m_namedGridAreaColumnCount(RenderStyle::initialNamedGridAreaCount())
     , m_gridColumnGap(RenderStyle::initialGridColumnGap())
     , m_gridRowGap(RenderStyle::initialGridRowGap())
+    , m_gridAutoRepeatColumns(RenderStyle::initialGridAutoRepeatTracks())
+    , m_gridAutoRepeatRows(RenderStyle::initialGridAutoRepeatTracks())
+    , m_autoRepeatColumnsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
+    , m_autoRepeatRowsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
+    , m_autoRepeatColumnsType(RenderStyle::initialGridAutoRepeatType())
+    , m_autoRepeatRowsType(RenderStyle::initialGridAutoRepeatType())
 {
 }
 
@@ -58,6 +68,10 @@
     , m_namedGridRowLines(o.m_namedGridRowLines)
     , m_orderedNamedGridColumnLines(o.m_orderedNamedGridColumnLines)
     , m_orderedNamedGridRowLines(o.m_orderedNamedGridRowLines)
+    , m_autoRepeatNamedGridColumnLines(o.m_autoRepeatNamedGridColumnLines)
+    , m_autoRepeatNamedGridRowLines(o.m_autoRepeatNamedGridRowLines)
+    , m_autoRepeatOrderedNamedGridColumnLines(o.m_autoRepeatOrderedNamedGridColumnLines)
+    , m_autoRepeatOrderedNamedGridRowLines(o.m_autoRepeatOrderedNamedGridRowLines)
     , m_gridAutoFlow(o.m_gridAutoFlow)
     , m_gridAutoRows(o.m_gridAutoRows)
     , m_gridAutoColumns(o.m_gridAutoColumns)
@@ -66,6 +80,12 @@
     , m_namedGridAreaColumnCount(o.m_namedGridAreaColumnCount)
     , m_gridColumnGap(o.m_gridColumnGap)
     , m_gridRowGap(o.m_gridRowGap)
+    , m_gridAutoRepeatColumns(o.m_gridAutoRepeatColumns)
+    , m_gridAutoRepeatRows(o.m_gridAutoRepeatRows)
+    , m_autoRepeatColumnsInsertionPoint(o.m_autoRepeatColumnsInsertionPoint)
+    , m_autoRepeatRowsInsertionPoint(o.m_autoRepeatRowsInsertionPoint)
+    , m_autoRepeatColumnsType(o.m_autoRepeatColumnsType)
+    , m_autoRepeatRowsType(o.m_autoRepeatRowsType)
 {
 }
 

Modified: trunk/Source/WebCore/rendering/style/StyleGridData.h (200181 => 200182)


--- trunk/Source/WebCore/rendering/style/StyleGridData.h	2016-04-28 08:54:33 UTC (rev 200181)
+++ trunk/Source/WebCore/rendering/style/StyleGridData.h	2016-04-28 09:27:55 UTC (rev 200182)
@@ -52,10 +52,15 @@
         return m_gridColumns == o.m_gridColumns && m_gridRows == o.m_gridRows
             && m_gridAutoFlow == o.m_gridAutoFlow && m_gridAutoRows == o.m_gridAutoRows && m_gridAutoColumns == o.m_gridAutoColumns
             && m_namedGridColumnLines == o.m_namedGridColumnLines && m_namedGridRowLines == o.m_namedGridRowLines
+            && m_autoRepeatNamedGridColumnLines == o.m_autoRepeatNamedGridColumnLines && m_autoRepeatNamedGridRowLines == o.m_autoRepeatNamedGridRowLines
+            && m_autoRepeatOrderedNamedGridColumnLines == o.m_autoRepeatOrderedNamedGridColumnLines && m_autoRepeatOrderedNamedGridRowLines == o.m_autoRepeatOrderedNamedGridRowLines
             && m_namedGridArea == o.m_namedGridArea && m_namedGridArea == o.m_namedGridArea
             && m_namedGridAreaRowCount == o.m_namedGridAreaRowCount && m_namedGridAreaColumnCount == o.m_namedGridAreaColumnCount
             && m_orderedNamedGridRowLines == o.m_orderedNamedGridRowLines && m_orderedNamedGridColumnLines == o.m_orderedNamedGridColumnLines
-            && m_gridColumnGap == o.m_gridColumnGap && m_gridRowGap == o.m_gridRowGap;
+            && m_gridColumnGap == o.m_gridColumnGap && m_gridRowGap == o.m_gridRowGap
+            && m_gridAutoRepeatColumns == o.m_gridAutoRepeatColumns && m_gridAutoRepeatRows == o.m_gridAutoRepeatRows
+            && m_autoRepeatColumnsInsertionPoint == o.m_autoRepeatColumnsInsertionPoint && m_autoRepeatRowsInsertionPoint == o.m_autoRepeatRowsInsertionPoint
+            && m_autoRepeatColumnsType == o.m_autoRepeatColumnsType && m_autoRepeatRowsType == o.m_autoRepeatRowsType;
     }
 
     bool operator!=(const StyleGridData& o) const
@@ -73,6 +78,11 @@
     OrderedNamedGridLinesMap m_orderedNamedGridColumnLines;
     OrderedNamedGridLinesMap m_orderedNamedGridRowLines;
 
+    NamedGridLinesMap m_autoRepeatNamedGridColumnLines;
+    NamedGridLinesMap m_autoRepeatNamedGridRowLines;
+    OrderedNamedGridLinesMap m_autoRepeatOrderedNamedGridColumnLines;
+    OrderedNamedGridLinesMap m_autoRepeatOrderedNamedGridRowLines;
+
     unsigned m_gridAutoFlow : GridAutoFlowBits;
 
     GridTrackSize m_gridAutoRows;
@@ -87,6 +97,15 @@
     Length m_gridColumnGap;
     Length m_gridRowGap;
 
+    Vector<GridTrackSize> m_gridAutoRepeatColumns;
+    Vector<GridTrackSize> m_gridAutoRepeatRows;
+
+    unsigned m_autoRepeatColumnsInsertionPoint;
+    unsigned m_autoRepeatRowsInsertionPoint;
+
+    AutoRepeatType m_autoRepeatColumnsType;
+    AutoRepeatType m_autoRepeatRowsType;
+
 private:
     StyleGridData();
     StyleGridData(const StyleGridData&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to