Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp |
| diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp |
| index 0d7831851de29b1a45bbdefb94e17597fb4fbfbc..df7a51ae3d8279ea8bfb83214445c15ee5813213 100644 |
| --- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp |
| +++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp |
| @@ -338,6 +338,52 @@ FontDescription::VariantLigatures StyleBuilderConverter::convertFontVariantLigat |
| return FontDescription::VariantLigatures(); |
| } |
| +FontVariantNumeric StyleBuilderConverter::convertFontVariantNumeric(StyleResolverState&, const CSSValue& value) |
| +{ |
| + if (value.isValueList()) { |
|
Timothy Loh
2016/05/10 05:26:26
I would put the 'none' check up first, i.e.
if (v
drott
2016/05/10 10:59:06
I assume you meant the "normal" check? Done.
|
| + FontVariantNumeric variantNumeric; |
| + const CSSValueList& valueList = toCSSValueList(value); |
| + for (size_t i = 0; i < valueList.length(); ++i) { |
|
Timothy Loh
2016/05/10 05:26:26
for (const CSSValue* feature : toCSSValueList(valu
drott
2016/05/10 10:59:06
Changed accordingly.
|
| + const CSSValue& item = *valueList.item(i); |
| + const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(item); |
| + switch (primitiveValue.getValueID()) { |
| + case CSSValueLiningNums: |
| + variantNumeric.setNumericFigure(FontVariantNumeric::LiningNums); |
| + break; |
| + case CSSValueOldstyleNums: |
| + variantNumeric.setNumericFigure(FontVariantNumeric::OldstyleNums); |
| + break; |
| + case CSSValueProportionalNums: |
| + variantNumeric.setNumericSpacing(FontVariantNumeric::ProportionalNums); |
| + break; |
| + case CSSValueTabularNums: |
| + variantNumeric.setNumericSpacing(FontVariantNumeric::TabularNums); |
| + break; |
| + case CSSValueDiagonalFractions: |
| + variantNumeric.setNumericFraction(FontVariantNumeric::DiagonalFractions); |
| + break; |
| + case CSSValueStackedFractions: |
| + variantNumeric.setNumericFraction(FontVariantNumeric::StackedFractions); |
| + break; |
| + case CSSValueOrdinal: |
| + variantNumeric.setOrdinal(FontVariantNumeric::OrdinalOn); |
| + break; |
| + case CSSValueSlashedZero: |
| + variantNumeric.setSlashedZero(FontVariantNumeric::SlashedZeroOn); |
| + break; |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + break; |
| + } |
| + } |
| + return variantNumeric; |
| + } |
| + |
| + ASSERT_WITH_SECURITY_IMPLICATION(value.isPrimitiveValue()); |
|
Timothy Loh
2016/05/10 05:26:26
btw this line is redundant because toCSSPrimitiveV
drott
2016/05/10 10:59:06
Not needed anymore due to the inversed order of ch
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNormal); |
| + return FontVariantNumeric(); |
| +} |
| + |
| StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(StyleResolverState&, const CSSValue& value) |
| { |
| StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment(); |