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&);