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 2d8d7a891753d3c712db29a97e85353919170759..1044f1d2ab5fc9a592c3f325b2daa8e29e35eabc 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp |
@@ -1502,15 +1502,16 @@ void LayoutGrid::offsetAndBreadthForPositionedChild(const LayoutBox& child, Grid |
GridPosition startPosition = isForColumns ? child.style()->gridColumnStart() : child.style()->gridRowStart(); |
GridPosition endPosition = isForColumns ? child.style()->gridColumnEnd() : child.style()->gridRowEnd(); |
- int lastExplicitLine = isForColumns ? gridColumnCount() : gridRowCount(); |
+ int firstExplicitLine = smallestStart; |
+ int lastExplicitLine = (isForColumns ? GridResolvedPosition::explicitGridColumnCount(styleRef()) : GridResolvedPosition::explicitGridRowCount(styleRef())) + smallestStart; |
bool startIsAuto = startPosition.isAuto() |
|| (startPosition.isNamedGridArea() && !GridResolvedPosition::isValidNamedLineOrArea(startPosition.namedGridLine(), styleRef(), GridResolvedPosition::initialPositionSide(direction))) |
- || (resolvedInitialPosition < 0) |
+ || (resolvedInitialPosition < firstExplicitLine) |
|| (resolvedInitialPosition > lastExplicitLine); |
bool endIsAuto = endPosition.isAuto() |
|| (endPosition.isNamedGridArea() && !GridResolvedPosition::isValidNamedLineOrArea(endPosition.namedGridLine(), styleRef(), GridResolvedPosition::finalPositionSide(direction))) |
- || (resolvedFinalPosition < 0) |
+ || (resolvedFinalPosition < firstExplicitLine) |
|| (resolvedFinalPosition > lastExplicitLine); |
size_t initialPosition = startIsAuto ? 0 : resolvedInitialPosition; |