Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
| diff --git a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
| index ae4ba1fd6cbb8a3239efef6b9faa7b805dbb654d..fa441fc7c21b88314546d491088a936a48a3b5d5 100644 |
| --- a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
| +++ b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
| @@ -744,11 +744,12 @@ class OrderedNamedLinesCollector { |
| STACK_ALLOCATED(); |
| WTF_MAKE_NONCOPYABLE(OrderedNamedLinesCollector); |
| public: |
| - OrderedNamedLinesCollector(const ComputedStyle& style, bool isRowAxis, size_t repetitions) |
| + OrderedNamedLinesCollector(const ComputedStyle& style, bool isRowAxis, size_t autoRepeatTracks) |
|
jfernandez
2016/07/19 14:43:18
I'd add some quantification sufix/prefix, like num
svillar
2016/07/20 07:22:30
Acknowledged.
|
| : m_orderedNamedGridLines(isRowAxis ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines()) |
| , m_orderedNamedAutoRepeatGridLines(isRowAxis ? style.autoRepeatOrderedNamedGridColumnLines() : style.autoRepeatOrderedNamedGridRowLines()) |
| , m_insertionPoint(isRowAxis ? style.gridAutoRepeatColumnsInsertionPoint() : style.gridAutoRepeatRowsInsertionPoint()) |
| - , m_repetitions(repetitions) |
| + , m_autoRepeatTotalTracks(autoRepeatTracks) |
| + , m_autoRepeatTrackListLength(isRowAxis ? style.gridAutoRepeatColumns().size() : style.gridAutoRepeatRows().size()) |
| { |
| } |
| @@ -763,7 +764,8 @@ private: |
| const OrderedNamedGridLines& m_orderedNamedGridLines; |
| const OrderedNamedGridLines& m_orderedNamedAutoRepeatGridLines; |
| size_t m_insertionPoint; |
| - size_t m_repetitions; |
| + size_t m_autoRepeatTotalTracks; |
| + size_t m_autoRepeatTrackListLength; |
| }; |
| void OrderedNamedLinesCollector::appendLines(CSSGridLineNamesValue& lineNamesValue, size_t index, NamedLinesType type) const |
| @@ -785,9 +787,10 @@ void OrderedNamedLinesCollector::collectLineNamesForIndex(CSSGridLineNamesValue& |
| return; |
| } |
| - DCHECK(m_repetitions); |
| - if (i > m_insertionPoint + m_repetitions) { |
| - appendLines(lineNamesValue, i - (m_repetitions - 1), NamedLines); |
| + DCHECK(m_autoRepeatTotalTracks); |
|
jfernandez
2016/07/19 14:43:18
Wouldn't be better to check whether it's > 0 ?
svillar
2016/07/20 07:22:30
That's exactly what we do here, m_autoRepeatTotalT
|
| + |
| + if (i > m_insertionPoint + m_autoRepeatTotalTracks) { |
| + appendLines(lineNamesValue, i - (m_autoRepeatTotalTracks - 1), NamedLines); |
| return; |
| } |
| @@ -797,14 +800,16 @@ void OrderedNamedLinesCollector::collectLineNamesForIndex(CSSGridLineNamesValue& |
| return; |
| } |
| - if (i == m_insertionPoint + m_repetitions) { |
| - appendLines(lineNamesValue, 1, AutoRepeatNamedLines); |
| + if (i == m_insertionPoint + m_autoRepeatTotalTracks) { |
| + appendLines(lineNamesValue, m_autoRepeatTrackListLength, AutoRepeatNamedLines); |
| appendLines(lineNamesValue, m_insertionPoint + 1, NamedLines); |
| return; |
| } |
| - appendLines(lineNamesValue, 1, AutoRepeatNamedLines); |
| - appendLines(lineNamesValue, 0, AutoRepeatNamedLines); |
| + size_t autoRepeatIndexInFirstRepetition = (i - m_insertionPoint) % m_autoRepeatTrackListLength; |
| + if (!autoRepeatIndexInFirstRepetition && i > m_insertionPoint) |
| + appendLines(lineNamesValue, m_autoRepeatTrackListLength, AutoRepeatNamedLines); |
| + appendLines(lineNamesValue, autoRepeatIndexInFirstRepetition, AutoRepeatNamedLines); |
| } |
| static void addValuesForNamedGridLinesAtIndex(OrderedNamedLinesCollector& collector, size_t i, CSSValueList& list) |
| @@ -838,7 +843,7 @@ static CSSValue* valueForGridTrackList(GridTrackSizingDirection direction, const |
| return CSSPrimitiveValue::createIdentifier(CSSValueNone); |
| size_t repetitions = isLayoutGrid ? toLayoutGrid(layoutObject)->autoRepeatCountForDirection(direction) : 0; |
| - OrderedNamedLinesCollector collector(style, isRowAxis, repetitions); |
| + OrderedNamedLinesCollector collector(style, isRowAxis, repetitions * autoRepeatTrackSizes.size()); |
| CSSValueList* list = CSSValueList::createSpaceSeparated(); |
| size_t insertionIndex; |
| if (isLayoutGrid) { |