Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/ColumnBalancer.h |
| diff --git a/third_party/WebKit/Source/core/layout/ColumnBalancer.h b/third_party/WebKit/Source/core/layout/ColumnBalancer.h |
| index e9e724f499a7f5be31e357835019d6626eb63089..0593a6bed439a4e2200fa3c072a03f5914f819cb 100644 |
| --- a/third_party/WebKit/Source/core/layout/ColumnBalancer.h |
| +++ b/third_party/WebKit/Source/core/layout/ColumnBalancer.h |
| @@ -150,6 +150,23 @@ class InitialColumnHeightFinder final : public ColumnBalancer { |
| // in order to calculate an initial column height. |
| void addContentRun(LayoutUnit endOffsetInFlowThread); |
| + // Normally we'll just return 0 here, because in most cases we won't add more |
| + // content runs than used column-count. However, if we're at the initial |
| + // balancing pass for a multicol that lives inside another to-be-balanced |
| + // outer multicol container, and there is a sufficient number of forced column |
| + // breaks, we may exceed used column-count. In such cases, we're going to |
| + // assume a minimal number of fragmentainer groups (rows) that will eventually |
| + // be created, and when distributing implicit column breaks to calculate an |
| + // initial balanced height, we'll only focus on content that has any chance at |
| + // all to end up in the last row. |
| + unsigned firstContentRunIndexInLastRow() const { |
| + unsigned columnCount = columnSet().usedColumnCount(); |
| + if (m_contentRuns.size() <= columnCount) |
| + return 0; |
| + unsigned lastRunIndex = m_contentRuns.size() - 1; |
|
eae
2016/11/10 23:37:12
Is columnCount guaranteed to be at least one? If
mstensho (USE GERRIT)
2016/11/11 08:47:46
There should be no way for it to be 0, or we'd be
|
| + return lastRunIndex / columnCount * columnCount; |
| + } |
| + |
| // Return the index of the content run with the currently tallest columns, |
| // taking all implicit breaks assumed so far into account. |
| unsigned contentRunIndexWithTallestColumns() const; |