| Index: third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
|
| index e44ff2ebc48fffb1438e8d24251427431facee1a..1a5a41f8001402443dda9f1801c811ef54ea0e32 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
|
| @@ -321,8 +321,13 @@ private:
|
|
|
| void markDescendantsWithFloatsForLayoutIfNeeded(LayoutBlockFlow& child, LayoutUnit newLogicalTop, LayoutUnit previousFloatLogicalBottom);
|
| bool positionAndLayoutOnceIfNeeded(LayoutBox& child, LayoutUnit newLogicalTop, BlockChildrenLayoutInfo&);
|
| +
|
| + // Handle breaking policy before the child, and insert a forced break in front of it if needed.
|
| + // Returns true if a forced break was inserted.
|
| + bool insertForcedBreakBeforeChildIfNeeded(LayoutBox& child, BlockChildrenLayoutInfo&);
|
| +
|
| void layoutBlockChild(LayoutBox& child, BlockChildrenLayoutInfo&);
|
| - void adjustPositionedBlock(LayoutBox& child, const MarginInfo&);
|
| + void adjustPositionedBlock(LayoutBox& child, const BlockChildrenLayoutInfo&);
|
| void adjustFloatingBlock(const MarginInfo&);
|
|
|
| LayoutPoint computeLogicalLocationForFloat(const FloatingObject&, LayoutUnit logicalTopOffset) const;
|
| @@ -444,6 +449,8 @@ public:
|
| LayoutBlockFlowRareData(const LayoutBlockFlow* block)
|
| : m_margins(positiveMarginBeforeDefault(block), negativeMarginBeforeDefault(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(block))
|
| , m_multiColumnFlowThread(nullptr)
|
| + , m_breakBefore(BreakAuto)
|
| + , m_breakAfter(BreakAuto)
|
| , m_lineBreakToAvoidWidow(-1)
|
| , m_didBreakAtLineToAvoidWidow(false)
|
| , m_discardMarginBefore(false)
|
| @@ -473,6 +480,8 @@ public:
|
|
|
| LayoutMultiColumnFlowThread* m_multiColumnFlowThread;
|
|
|
| + unsigned m_breakBefore : 4;
|
| + unsigned m_breakAfter : 4;
|
| int m_lineBreakToAvoidWidow;
|
| bool m_didBreakAtLineToAvoidWidow : 1;
|
| bool m_discardMarginBefore : 1;
|
| @@ -526,13 +535,18 @@ private:
|
|
|
| LayoutUnit collapseMargins(LayoutBox& child, MarginInfo&, bool childIsSelfCollapsing, bool childDiscardMarginBefore, bool childDiscardMarginAfter);
|
| LayoutUnit clearFloatsIfNeeded(LayoutBox& child, MarginInfo&, LayoutUnit oldTopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos, bool childIsSelfCollapsing, bool childDiscardMargin);
|
| - LayoutUnit estimateLogicalTopPosition(LayoutBox& child, const MarginInfo&, LayoutUnit& estimateWithoutPagination);
|
| + LayoutUnit estimateLogicalTopPosition(LayoutBox& child, const BlockChildrenLayoutInfo&, LayoutUnit& estimateWithoutPagination);
|
| void marginBeforeEstimateForChild(LayoutBox&, LayoutUnit&, LayoutUnit&, bool&) const;
|
| void handleAfterSideOfBlock(LayoutBox* lastChild, LayoutUnit top, LayoutUnit bottom, MarginInfo&);
|
| void setCollapsedBottomMargin(const MarginInfo&);
|
|
|
| - LayoutUnit applyBeforeBreak(LayoutBox& child, LayoutUnit logicalOffset); // If the child has a before break, then return a new yPos that shifts to the top of the next page/column.
|
| - LayoutUnit applyAfterBreak(LayoutBox& child, LayoutUnit logicalOffset, MarginInfo&); // If the child has an after break, then return a new offset that shifts to the top of the next page/column.
|
| + // Apply any forced fragmentainer break that's set on the current class A break point.
|
| + LayoutUnit applyForcedBreak(LayoutUnit logicalOffset, EBreak);
|
| +
|
| + void setBreakBefore(EBreak);
|
| + void setBreakAfter(EBreak);
|
| + EBreak breakBefore() const override;
|
| + EBreak breakAfter() const override;
|
|
|
| LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTop, LayoutBox& child, BlockChildrenLayoutInfo&, bool atBeforeSideOfBlock);
|
| // Computes a deltaOffset value that put a line at the top of the next page if it doesn't fit on the current page.
|
|
|