Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
| index ce516459d4e6ca3b93c1933d554209b057a3bd74..06de8f2b5341a30068b7b59ffea4da611e015a02 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
| @@ -1643,6 +1643,12 @@ RootInlineBox* LayoutBlockFlow::determineStartPosition(LineLayoutState& layoutSt |
| LayoutUnit paginationDelta; |
| for (curr = firstRootBox(); curr && !curr->isDirty(); curr = curr->nextRootBox()) { |
| if (paginated) { |
| + // If a cell's row wants to avoid straddling page breaks then we always need to layout all |
|
mstensho (USE GERRIT)
2016/04/04 21:05:39
Pagination may indeed call for deeper layout passe
|
| + // the content in the cell at once. |
| + if (isTableCell() && toLayoutBox(parent())->getPaginationBreakability() != AllowAnyBreaks) { |
| + layoutState.markForFullLayout(); |
| + break; |
| + } |
| paginationDelta -= curr->paginationStrut(); |
| adjustLinePositionForPagination(*curr, paginationDelta); |
| if (paginationDelta) { |