Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBox.cpp

Issue 2682573002: Split EBreak enum into EBreakBetween & EBreakInside (Closed)
Patch Set: Update references to EBreak in ComputedStyle.h comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBox.h ('k') | third_party/WebKit/Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698