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 adb536880c173e1ecc7cc8846ccb87e3b44f27f3..8c086bf0e792a78e5b93c9696169ddd7e407b698 100644 |
--- a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
+++ b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp |
@@ -1353,6 +1353,49 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapCoordinate(const Vecto |
return list.release(); |
} |
+static EBreak mapToPageBreakValue(EBreak genericBreakValue) |
+{ |
+ switch (genericBreakValue) { |
+ case BreakAvoidColumn: |
+ case BreakAvoidRegion: |
+ case BreakColumn: |
+ case BreakRecto: |
+ case BreakRegion: |
+ 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 BreakAvoidRegion: |
+ case BreakLeft: |
+ case BreakPage: |
+ case BreakRecto: |
+ case BreakRegion: |
+ 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(); |
@@ -1567,11 +1610,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); |
@@ -1914,17 +1957,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: |