Index: third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
diff --git a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
index 2656affceef2ca8ae0d1683840c85cc16f5be609..99e62f654850ac2a93a06b01bfef0b8acd150163 100644 |
--- a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
+++ b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
@@ -1323,6 +1323,45 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapCoordinate(const Vecto |
return list.release(); |
} |
+static EBreak mapToPageBreakValue(EBreak genericBreakValue) |
+{ |
+ switch (genericBreakValue) { |
+ case BreakAvoidColumn: |
+ case BreakColumn: |
+ case BreakRecto: |
+ case BreakVerso: |
+ return BreakAuto; |
+ case BreakLeft: |
+ case BreakRight: |
+ // TODO(mstensho): "left" and "right" should simply be mapped to that, not "always", according to spec. |
+ case BreakPage: |
+ return BreakAlways; |
+ case BreakAvoidPage: |
+ return BreakAvoid; |
+ default: |
+ return genericBreakValue; |
+ } |
+} |
+ |
+static EBreak mapToColumnBreakValue(EBreak genericBreakValue) |
+{ |
+ switch (genericBreakValue) { |
+ case BreakAvoidPage: |
+ case BreakLeft: |
+ case BreakPage: |
+ case BreakRecto: |
+ case BreakRight: |
+ case BreakVerso: |
+ return BreakAuto; |
+ case BreakColumn: |
+ return BreakAlways; |
+ case BreakAvoidColumn: |
+ return BreakAvoid; |
+ default: |
+ return genericBreakValue; |
+ } |
+} |
+ |
PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(const AtomicString customPropertyName, const ComputedStyle& style) |
{ |
StyleVariableData* variables = style.variables(); |
@@ -1537,11 +1576,11 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID |
case CSSPropertyWebkitColumnSpan: |
return cssValuePool().createIdentifierValue(style.columnSpan() ? CSSValueAll : CSSValueNone); |
case CSSPropertyWebkitColumnBreakAfter: |
- return cssValuePool().createValue(style.columnBreakAfter()); |
+ return cssValuePool().createValue(mapToColumnBreakValue(style.breakAfter())); |
case CSSPropertyWebkitColumnBreakBefore: |
- return cssValuePool().createValue(style.columnBreakBefore()); |
+ return cssValuePool().createValue(mapToColumnBreakValue(style.breakBefore())); |
case CSSPropertyWebkitColumnBreakInside: |
- return cssValuePool().createValue(style.columnBreakInside()); |
+ return cssValuePool().createValue(mapToColumnBreakValue(style.breakInside())); |
case CSSPropertyWebkitColumnWidth: |
if (style.hasAutoColumnWidth()) |
return cssValuePool().createIdentifierValue(CSSValueAuto); |
@@ -1884,17 +1923,18 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID |
return zoomAdjustedPixelValueForLength(paddingLeft, style); |
return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPaddingLeft(), style); |
} |
+ case CSSPropertyBreakAfter: |
+ return cssValuePool().createValue(style.breakAfter()); |
+ case CSSPropertyBreakBefore: |
+ return cssValuePool().createValue(style.breakBefore()); |
+ case CSSPropertyBreakInside: |
+ return cssValuePool().createValue(style.breakInside()); |
case CSSPropertyPageBreakAfter: |
- return cssValuePool().createValue(style.pageBreakAfter()); |
+ return cssValuePool().createValue(mapToPageBreakValue(style.breakAfter())); |
case CSSPropertyPageBreakBefore: |
- return cssValuePool().createValue(style.pageBreakBefore()); |
- case CSSPropertyPageBreakInside: { |
- EPageBreak pageBreak = style.pageBreakInside(); |
- ASSERT(pageBreak != PBALWAYS); |
- if (pageBreak == PBALWAYS) |
- return nullptr; |
- return cssValuePool().createValue(style.pageBreakInside()); |
- } |
+ return cssValuePool().createValue(mapToPageBreakValue(style.breakBefore())); |
+ case CSSPropertyPageBreakInside: |
+ return cssValuePool().createValue(mapToPageBreakValue(style.breakInside())); |
case CSSPropertyPosition: |
return cssValuePool().createValue(style.position()); |
case CSSPropertyQuotes: |