Index: third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
index 5b7e4f4709551e1061a118053170a6e313dec519..bbe58963f10af8e112677dada8b4876c07128c6b 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
@@ -30,7 +30,7 @@ |
#include "core/paint/GridPainter.h" |
#include "core/paint/PaintLayer.h" |
#include "core/style/ComputedStyle.h" |
-#include "core/style/GridCoordinate.h" |
+#include "core/style/GridArea.h" |
#include "platform/LengthFunctions.h" |
#include <algorithm> |
@@ -197,7 +197,7 @@ public: |
return true; |
} |
- PassOwnPtr<GridCoordinate> nextEmptyGridArea(size_t fixedTrackSpan, size_t varyingTrackSpan) |
+ PassOwnPtr<GridArea> nextEmptyGridArea(size_t fixedTrackSpan, size_t varyingTrackSpan) |
{ |
ASSERT(!m_grid.isEmpty()); |
ASSERT(fixedTrackSpan >= 1 && varyingTrackSpan >= 1); |
@@ -209,7 +209,7 @@ public: |
const size_t endOfVaryingTrackIndex = (m_direction == ForColumns) ? m_grid.size() : m_grid[0].size(); |
for (; varyingTrackIndex < endOfVaryingTrackIndex; ++varyingTrackIndex) { |
if (checkEmptyCells(rowSpan, columnSpan)) { |
- OwnPtr<GridCoordinate> result = adoptPtr(new GridCoordinate(GridSpan::translatedDefiniteGridSpan(m_rowIndex, m_rowIndex + rowSpan), GridSpan::translatedDefiniteGridSpan(m_columnIndex, m_columnIndex + columnSpan))); |
+ OwnPtr<GridArea> result = adoptPtr(new GridArea(GridSpan::translatedDefiniteGridSpan(m_rowIndex, m_rowIndex + rowSpan), GridSpan::translatedDefiniteGridSpan(m_columnIndex, m_columnIndex + columnSpan))); |
// Advance the iterator to avoid an infinite loop where we would return the same grid area over and over. |
++varyingTrackIndex; |
return result.release(); |
@@ -1104,13 +1104,13 @@ void LayoutGrid::ensureGridSize(size_t maximumRowSize, size_t maximumColumnSize) |
} |
} |
-void LayoutGrid::insertItemIntoGrid(LayoutBox& child, const GridCoordinate& coordinate) |
+void LayoutGrid::insertItemIntoGrid(LayoutBox& child, const GridArea& area) |
{ |
- RELEASE_ASSERT(coordinate.rows.isTranslatedDefinite() && coordinate.columns.isTranslatedDefinite()); |
- ensureGridSize(coordinate.rows.resolvedFinalPosition(), coordinate.columns.resolvedFinalPosition()); |
+ RELEASE_ASSERT(area.rows.isTranslatedDefinite() && area.columns.isTranslatedDefinite()); |
+ ensureGridSize(area.rows.resolvedFinalPosition(), area.columns.resolvedFinalPosition()); |
- for (const auto& row : coordinate.rows) { |
- for (const auto& column: coordinate.columns) |
+ for (const auto& row : area.rows) { |
+ for (const auto& column: area.columns) |
m_grid[row][column].append(&child); |
} |
} |
@@ -1120,7 +1120,7 @@ void LayoutGrid::placeItemsOnGrid() |
if (!m_gridIsDirty) |
return; |
- ASSERT(m_gridItemCoordinate.isEmpty()); |
+ ASSERT(m_gridItemArea.isEmpty()); |
populateExplicitGridAndOrderIterator(); |
@@ -1133,22 +1133,22 @@ void LayoutGrid::placeItemsOnGrid() |
if (child->isOutOfFlowPositioned()) |
continue; |
- GridCoordinate coordinate = cachedGridCoordinate(*child); |
- if (!coordinate.rows.isIndefinite()) |
- coordinate.rows.translate(abs(m_smallestRowStart)); |
- if (!coordinate.columns.isIndefinite()) |
- coordinate.columns.translate(abs(m_smallestColumnStart)); |
- m_gridItemCoordinate.set(child, coordinate); |
+ GridArea area = cachedGridArea(*child); |
+ if (!area.rows.isIndefinite()) |
+ area.rows.translate(abs(m_smallestRowStart)); |
+ if (!area.columns.isIndefinite()) |
+ area.columns.translate(abs(m_smallestColumnStart)); |
+ m_gridItemArea.set(child, area); |
- if (coordinate.rows.isIndefinite() || coordinate.columns.isIndefinite()) { |
- GridSpan majorAxisPositions = (autoPlacementMajorAxisDirection() == ForColumns) ? coordinate.columns : coordinate.rows; |
+ if (area.rows.isIndefinite() || area.columns.isIndefinite()) { |
+ GridSpan majorAxisPositions = (autoPlacementMajorAxisDirection() == ForColumns) ? area.columns : area.rows; |
if (majorAxisPositions.isIndefinite()) |
autoMajorAxisAutoGridItems.append(child); |
else |
specifiedMajorAxisAutoGridItems.append(child); |
continue; |
} |
- insertItemIntoGrid(*child, coordinate); |
+ insertItemIntoGrid(*child, area); |
} |
ASSERT(gridRowCount() >= GridPositionsResolver::explicitGridRowCount(*style())); |
@@ -1164,8 +1164,8 @@ void LayoutGrid::placeItemsOnGrid() |
if (child->isOutOfFlowPositioned()) |
continue; |
- GridCoordinate coordinate = cachedGridCoordinate(*child); |
- ASSERT(coordinate.rows.isTranslatedDefinite() && coordinate.columns.isTranslatedDefinite()); |
+ GridArea area = cachedGridArea(*child); |
+ ASSERT(area.rows.isTranslatedDefinite() && area.columns.isTranslatedDefinite()); |
} |
#endif |
} |
@@ -1188,10 +1188,10 @@ void LayoutGrid::populateExplicitGridAndOrderIterator() |
populator.collectChild(child); |
m_gridItemsIndexesMap.set(child, childIndex++); |
- // This function bypasses the cache (cachedGridCoordinate()) as it is used to build it. |
+ // This function bypasses the cache (cachedGridArea()) as it is used to build it. |
GridSpan rowPositions = GridPositionsResolver::resolveGridPositionsFromStyle(*style(), *child, ForRows); |
GridSpan columnPositions = GridPositionsResolver::resolveGridPositionsFromStyle(*style(), *child, ForColumns); |
- m_gridItemCoordinate.set(child, GridCoordinate(rowPositions, columnPositions)); |
+ m_gridItemArea.set(child, GridArea(rowPositions, columnPositions)); |
// |positions| is 0 if we need to run the auto-placement algorithm. |
if (!rowPositions.isIndefinite()) { |
@@ -1218,13 +1218,13 @@ void LayoutGrid::populateExplicitGridAndOrderIterator() |
column.grow(maximumColumnIndex + abs(m_smallestColumnStart)); |
} |
-PassOwnPtr<GridCoordinate> LayoutGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const LayoutBox& gridItem, GridTrackSizingDirection specifiedDirection, const GridSpan& specifiedPositions) const |
+PassOwnPtr<GridArea> LayoutGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const LayoutBox& gridItem, GridTrackSizingDirection specifiedDirection, const GridSpan& specifiedPositions) const |
{ |
GridTrackSizingDirection crossDirection = specifiedDirection == ForColumns ? ForRows : ForColumns; |
const size_t endOfCrossDirection = crossDirection == ForColumns ? gridColumnCount() : gridRowCount(); |
size_t crossDirectionSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(*style(), gridItem, crossDirection); |
GridSpan crossDirectionPositions = GridSpan::translatedDefiniteGridSpan(endOfCrossDirection, endOfCrossDirection + crossDirectionSpanSize); |
- return adoptPtr(new GridCoordinate(specifiedDirection == ForColumns ? crossDirectionPositions : specifiedPositions, specifiedDirection == ForColumns ? specifiedPositions : crossDirectionPositions)); |
+ return adoptPtr(new GridArea(specifiedDirection == ForColumns ? crossDirectionPositions : specifiedPositions, specifiedDirection == ForColumns ? specifiedPositions : crossDirectionPositions)); |
} |
void LayoutGrid::placeSpecifiedMajorAxisItemsOnGrid(const Vector<LayoutBox*>& autoGridItems) |
@@ -1245,11 +1245,11 @@ void LayoutGrid::placeSpecifiedMajorAxisItemsOnGrid(const Vector<LayoutBox*>& au |
unsigned majorAxisInitialPosition = majorAxisPositions.resolvedInitialPosition(); |
GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAxisPositions.resolvedInitialPosition(), isGridAutoFlowDense ? 0 : minorAxisCursors.get(majorAxisInitialPosition)); |
- OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea(majorAxisPositions.integerSpan(), minorAxisSpanSize); |
+ OwnPtr<GridArea> emptyGridArea = iterator.nextEmptyGridArea(majorAxisPositions.integerSpan(), minorAxisSpanSize); |
if (!emptyGridArea) |
emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(*autoGridItem, autoPlacementMajorAxisDirection(), majorAxisPositions); |
- m_gridItemCoordinate.set(autoGridItem, *emptyGridArea); |
+ m_gridItemArea.set(autoGridItem, *emptyGridArea); |
insertItemIntoGrid(*autoGridItem, *emptyGridArea); |
if (!isGridAutoFlowDense) |
@@ -1283,7 +1283,7 @@ void LayoutGrid::placeAutoMajorAxisItemOnGrid(LayoutBox& gridItem, std::pair<siz |
size_t majorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.second : autoPlacementCursor.first; |
size_t minorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.first : autoPlacementCursor.second; |
- OwnPtr<GridCoordinate> emptyGridArea; |
+ OwnPtr<GridArea> emptyGridArea; |
if (minorAxisPositions.isTranslatedDefinite()) { |
// Move to the next track in major axis if initial position in minor axis is before auto-placement cursor. |
if (minorAxisPositions.resolvedInitialPosition() < minorAxisAutoPlacementCursor) |
@@ -1323,7 +1323,7 @@ void LayoutGrid::placeAutoMajorAxisItemOnGrid(LayoutBox& gridItem, std::pair<siz |
emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(gridItem, autoPlacementMinorAxisDirection(), GridSpan::translatedDefiniteGridSpan(0, minorAxisSpanSize)); |
} |
- m_gridItemCoordinate.set(&gridItem, *emptyGridArea); |
+ m_gridItemArea.set(&gridItem, *emptyGridArea); |
insertItemIntoGrid(gridItem, *emptyGridArea); |
// Move auto-placement cursor to the new position. |
autoPlacementCursor.first = emptyGridArea->rows.resolvedInitialPosition(); |
@@ -1353,7 +1353,7 @@ void LayoutGrid::dirtyGrid() |
setNeedsLayout(LayoutInvalidationReason::GridChanged); |
m_grid.resize(0); |
- m_gridItemCoordinate.clear(); |
+ m_gridItemArea.clear(); |
m_gridItemsOverflowingGridArea.resize(0); |
m_gridItemsIndexesMap.clear(); |
m_gridIsDirty = true; |
@@ -1429,9 +1429,9 @@ void LayoutGrid::layoutGridItems(GridSizingData& sizingData) |
updateAutoMarginsInRowAxisIfNeeded(*child); |
#if ENABLE(ASSERT) |
- const GridCoordinate& coordinate = cachedGridCoordinate(*child); |
- ASSERT(coordinate.columns.resolvedInitialPosition() < sizingData.columnTracks.size()); |
- ASSERT(coordinate.rows.resolvedInitialPosition() < sizingData.rowTracks.size()); |
+ const GridArea& area = cachedGridArea(*child); |
+ ASSERT(area.columns.resolvedInitialPosition() < sizingData.columnTracks.size()); |
+ ASSERT(area.rows.resolvedInitialPosition() < sizingData.rowTracks.size()); |
#endif |
child->setLogicalLocation(findChildLogicalPosition(*child, sizingData)); |
@@ -1544,16 +1544,16 @@ void LayoutGrid::offsetAndBreadthForPositionedChild(const LayoutBox& child, Grid |
} |
} |
-GridCoordinate LayoutGrid::cachedGridCoordinate(const LayoutBox& gridItem) const |
+GridArea LayoutGrid::cachedGridArea(const LayoutBox& gridItem) const |
{ |
- ASSERT(m_gridItemCoordinate.contains(&gridItem)); |
- return m_gridItemCoordinate.get(&gridItem); |
+ ASSERT(m_gridItemArea.contains(&gridItem)); |
+ return m_gridItemArea.get(&gridItem); |
} |
GridSpan LayoutGrid::cachedGridSpan(const LayoutBox& gridItem, GridTrackSizingDirection direction) const |
{ |
- GridCoordinate coordinate = cachedGridCoordinate(gridItem); |
- return direction == ForColumns ? coordinate.columns : coordinate.rows; |
+ GridArea area = cachedGridArea(gridItem); |
+ return direction == ForColumns ? area.columns : area.rows; |
} |
LayoutUnit LayoutGrid::gridAreaBreadthForChild(const LayoutBox& child, GridTrackSizingDirection direction, const Vector<GridTrack>& tracks) const |