Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
index bc1d11d1902f1394e67db899a53ef4f9ee4e4c3c..4ed69d72a65c8e97024106dd38b4ff0d56541480 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
@@ -2112,8 +2112,8 @@ void LayoutBox::setPaginationStrut(LayoutUnit strut) { |
ensureRareData().m_paginationStrut = strut; |
} |
-bool LayoutBox::isBreakBetweenControllable(EBreak breakValue) const { |
- if (breakValue == BreakAuto) |
+bool LayoutBox::isBreakBetweenControllable(EBreakBetween breakValue) const { |
+ if (breakValue == EBreakBetween::kAuto) |
return true; |
// We currently only support non-auto break-before and break-after values on |
// in-flow block level elements, which is the minimum requirement according to |
@@ -2128,15 +2128,16 @@ bool LayoutBox::isBreakBetweenControllable(EBreak breakValue) const { |
if (!viewIsPaginated && !flowThreadContainingBlock()) |
return false; |
while (curr) { |
- if (curr == layoutView) |
- return viewIsPaginated && breakValue != BreakColumn && |
- breakValue != BreakAvoidColumn; |
+ if (curr == layoutView) { |
+ return viewIsPaginated && breakValue != EBreakBetween::kColumn && |
+ breakValue != EBreakBetween::kAvoidColumn; |
+ } |
if (curr->isLayoutFlowThread()) { |
if (breakValue == |
- BreakAvoid) // Valid in any kind of fragmentation context. |
+ EBreakBetween::kAvoid) // Valid in any kind of fragmentation context. |
return true; |
- bool isMulticolValue = |
- breakValue == BreakColumn || breakValue == BreakAvoidColumn; |
+ bool isMulticolValue = breakValue == EBreakBetween::kColumn || |
+ breakValue == EBreakBetween::kAvoidColumn; |
if (toLayoutFlowThread(curr)->isLayoutPagedFlowThread()) |
return !isMulticolValue; |
if (isMulticolValue) |
@@ -2152,19 +2153,19 @@ bool LayoutBox::isBreakBetweenControllable(EBreak breakValue) const { |
return false; |
} |
-bool LayoutBox::isBreakInsideControllable(EBreak breakValue) const { |
- ASSERT(!isForcedFragmentainerBreakValue(breakValue)); |
- if (breakValue == BreakAuto) |
+bool LayoutBox::isBreakInsideControllable(EBreakInside breakValue) const { |
+ if (breakValue == EBreakInside::kAuto) |
return true; |
// First check multicol. |
const LayoutFlowThread* flowThread = flowThreadContainingBlock(); |
// 'avoid-column' is only valid in a multicol context. |
- if (breakValue == BreakAvoidColumn) |
+ if (breakValue == EBreakInside::kAvoidColumn) |
return flowThread && !flowThread->isLayoutPagedFlowThread(); |
// 'avoid' is valid in any kind of fragmentation context. |
- if (breakValue == BreakAvoid && flowThread) |
+ if (breakValue == EBreakInside::kAvoid && flowThread) |
return true; |
- ASSERT(breakValue == BreakAvoidPage || breakValue == BreakAvoid); |
+ DCHECK(breakValue == EBreakInside::kAvoidPage || |
+ breakValue == EBreakInside::kAvoid); |
if (view()->fragmentationContext()) |
return true; // The view is paginated, probably because we're printing. |
if (!flowThread) |
@@ -2180,25 +2181,28 @@ bool LayoutBox::isBreakInsideControllable(EBreak breakValue) const { |
return false; |
} |
-EBreak LayoutBox::breakAfter() const { |
- EBreak breakValue = style()->breakAfter(); |
- if (breakValue == BreakAuto || isBreakBetweenControllable(breakValue)) |
+EBreakBetween LayoutBox::breakAfter() const { |
+ EBreakBetween breakValue = style()->breakAfter(); |
+ if (breakValue == EBreakBetween::kAuto || |
+ isBreakBetweenControllable(breakValue)) |
return breakValue; |
- return BreakAuto; |
+ return EBreakBetween::kAuto; |
} |
-EBreak LayoutBox::breakBefore() const { |
- EBreak breakValue = style()->breakBefore(); |
- if (breakValue == BreakAuto || isBreakBetweenControllable(breakValue)) |
+EBreakBetween LayoutBox::breakBefore() const { |
+ EBreakBetween breakValue = style()->breakBefore(); |
+ if (breakValue == EBreakBetween::kAuto || |
+ isBreakBetweenControllable(breakValue)) |
return breakValue; |
- return BreakAuto; |
+ return EBreakBetween::kAuto; |
} |
-EBreak LayoutBox::breakInside() const { |
- EBreak breakValue = style()->breakInside(); |
- if (breakValue == BreakAuto || isBreakInsideControllable(breakValue)) |
+EBreakInside LayoutBox::breakInside() const { |
+ EBreakInside breakValue = style()->breakInside(); |
+ if (breakValue == EBreakInside::kAuto || |
+ isBreakInsideControllable(breakValue)) |
return breakValue; |
- return BreakAuto; |
+ return EBreakInside::kAuto; |
} |
// At a class A break point [1], the break value with the highest precedence |
@@ -2206,7 +2210,7 @@ EBreak LayoutBox::breakInside() const { |
// the value specified on a latter object wins. |
// |
// [1] https://drafts.csswg.org/css-break/#possible-breaks |
-static inline int fragmentainerBreakPrecedence(EBreak breakValue) { |
+static inline int fragmentainerBreakPrecedence(EBreakBetween breakValue) { |
// "auto" has the lowest priority. |
// "avoid*" values win over "auto". |
// "avoid-page" wins over "avoid-column". |
@@ -2220,49 +2224,53 @@ static inline int fragmentainerBreakPrecedence(EBreak breakValue) { |
default: |
ASSERT_NOT_REACHED(); |
// fall-through |
- case BreakAuto: |
+ case EBreakBetween::kAuto: |
return 0; |
- case BreakAvoidColumn: |
+ case EBreakBetween::kAvoidColumn: |
return 1; |
- case BreakAvoidPage: |
+ case EBreakBetween::kAvoidPage: |
return 2; |
- case BreakAvoid: |
+ case EBreakBetween::kAvoid: |
return 3; |
- case BreakColumn: |
+ case EBreakBetween::kColumn: |
return 4; |
- case BreakPage: |
+ case EBreakBetween::kPage: |
return 5; |
- case BreakLeft: |
- case BreakRight: |
- case BreakRecto: |
- case BreakVerso: |
+ case EBreakBetween::kLeft: |
+ case EBreakBetween::kRight: |
+ case EBreakBetween::kRecto: |
+ case EBreakBetween::kVerso: |
return 6; |
} |
} |
-EBreak LayoutBox::joinFragmentainerBreakValues(EBreak firstValue, |
- EBreak secondValue) { |
+EBreakBetween LayoutBox::joinFragmentainerBreakValues( |
+ EBreakBetween firstValue, |
+ EBreakBetween secondValue) { |
if (fragmentainerBreakPrecedence(secondValue) >= |
fragmentainerBreakPrecedence(firstValue)) |
return secondValue; |
return firstValue; |
} |
-EBreak LayoutBox::classABreakPointValue(EBreak previousBreakAfterValue) const { |
+EBreakBetween LayoutBox::classABreakPointValue( |
+ EBreakBetween previousBreakAfterValue) const { |
// First assert that we're at a class A break point. |
ASSERT(isBreakBetweenControllable(previousBreakAfterValue)); |
return joinFragmentainerBreakValues(previousBreakAfterValue, breakBefore()); |
} |
-bool LayoutBox::needsForcedBreakBefore(EBreak previousBreakAfterValue) const { |
+bool LayoutBox::needsForcedBreakBefore( |
+ EBreakBetween previousBreakAfterValue) const { |
// Forced break values are only honored when specified on in-flow objects, but |
// floats and out-of-flow positioned objects may be affected by a break-after |
// value of the previous in-flow object, even though we're not at a class A |
// break point. |
- EBreak breakValue = isFloatingOrOutOfFlowPositioned() |
- ? previousBreakAfterValue |
- : classABreakPointValue(previousBreakAfterValue); |
+ EBreakBetween breakValue = |
+ isFloatingOrOutOfFlowPositioned() |
+ ? previousBreakAfterValue |
+ : classABreakPointValue(previousBreakAfterValue); |
return isForcedFragmentainerBreakValue(breakValue); |
} |
@@ -5036,9 +5044,10 @@ LayoutBox::PaginationBreakability LayoutBox::getPaginationBreakability() const { |
(isOutOfFlowPositioned() && style()->position() == FixedPosition)) |
return ForbidBreaks; |
- EBreak breakValue = breakInside(); |
- if (breakValue == BreakAvoid || breakValue == BreakAvoidPage || |
- breakValue == BreakAvoidColumn) |
+ EBreakInside breakValue = breakInside(); |
+ if (breakValue == EBreakInside::kAvoid || |
+ breakValue == EBreakInside::kAvoidPage || |
+ breakValue == EBreakInside::kAvoidColumn) |
return AvoidBreaks; |
return AllowAnyBreaks; |
} |