Chromium Code Reviews| Index: third_party/WebKit/Source/core/animation/LengthSVGInterpolation.cpp |
| diff --git a/third_party/WebKit/Source/core/animation/LengthSVGInterpolation.cpp b/third_party/WebKit/Source/core/animation/LengthSVGInterpolation.cpp |
| index f5d6bd6038fd0b18ac7631f01037711acf99244e..3155065a7254e9b6e8952dada37f709033cb874a 100644 |
| --- a/third_party/WebKit/Source/core/animation/LengthSVGInterpolation.cpp |
| +++ b/third_party/WebKit/Source/core/animation/LengthSVGInterpolation.cpp |
| @@ -60,43 +60,51 @@ enum LengthInterpolatedUnit { |
| LengthInterpolatedCHS, |
| }; |
| -static const SVGLengthType unitTypes[] = { LengthTypeNumber, LengthTypePercentage, LengthTypeEMS, LengthTypeEXS, LengthTypeREMS, LengthTypeCHS }; |
| +static const CSSPrimitiveValue::UnitType unitTypes[] = { |
| + CSSPrimitiveValue::UnitType::Number, |
| + CSSPrimitiveValue::UnitType::Percentage, |
| + CSSPrimitiveValue::UnitType::Ems, |
| + CSSPrimitiveValue::UnitType::Exs, |
| + CSSPrimitiveValue::UnitType::Rems, |
| + CSSPrimitiveValue::UnitType::Chs }; |
|
fs
2015/10/30 19:50:00
Nit: }; on next line
|
| const size_t numLengthInterpolatedUnits = WTF_ARRAY_LENGTH(unitTypes); |
| -LengthInterpolatedUnit convertToInterpolatedUnit(SVGLengthType lengthType, double& value) |
| +LengthInterpolatedUnit convertToInterpolatedUnit(CSSPrimitiveValue::UnitType unitType, double& value) |
| { |
| - switch (lengthType) { |
| - case LengthTypeUnknown: |
| + switch (unitType) { |
| + case CSSPrimitiveValue::UnitType::Unknown: |
| default: |
| ASSERT_NOT_REACHED(); |
| - case LengthTypePX: |
| - case LengthTypeNumber: |
| + case CSSPrimitiveValue::UnitType::Pixels: |
| + case CSSPrimitiveValue::UnitType::Number: |
| return LengthInterpolatedNumber; |
| - case LengthTypePercentage: |
| + case CSSPrimitiveValue::UnitType::Percentage: |
| return LengthInterpolatedPercentage; |
| - case LengthTypeEMS: |
| + case CSSPrimitiveValue::UnitType::Ems: |
| return LengthInterpolatedEMS; |
| - case LengthTypeEXS: |
| + case CSSPrimitiveValue::UnitType::Exs: |
| return LengthInterpolatedEXS; |
| - case LengthTypeCM: |
| + case CSSPrimitiveValue::UnitType::Centimeters: |
| value *= cssPixelsPerCentimeter; |
| return LengthInterpolatedNumber; |
| - case LengthTypeMM: |
| + case CSSPrimitiveValue::UnitType::Millimeters: |
| value *= cssPixelsPerMillimeter; |
| return LengthInterpolatedNumber; |
| - case LengthTypeIN: |
| + case CSSPrimitiveValue::UnitType::Inches: |
| value *= cssPixelsPerInch; |
| return LengthInterpolatedNumber; |
| - case LengthTypePT: |
| + case CSSPrimitiveValue::UnitType::Points: |
| value *= cssPixelsPerPoint; |
| return LengthInterpolatedNumber; |
| - case LengthTypePC: |
| + case CSSPrimitiveValue::UnitType::Picas: |
| value *= cssPixelsPerPica; |
| return LengthInterpolatedNumber; |
| - case LengthTypeREMS: |
| + case CSSPrimitiveValue::UnitType::UserUnits: |
| + return LengthInterpolatedNumber; |
| + case CSSPrimitiveValue::UnitType::Rems: |
| return LengthInterpolatedREMS; |
| - case LengthTypeCHS: |
| + case CSSPrimitiveValue::UnitType::Chs: |
| return LengthInterpolatedCHS; |
| } |
| } |
| @@ -109,7 +117,7 @@ PassOwnPtr<InterpolableValue> LengthSVGInterpolation::toInterpolableValue(SVGLen |
| populateModeData(attribute, ptrModeData); |
| double value = length->valueInSpecifiedUnits(); |
| - LengthInterpolatedUnit unitType = convertToInterpolatedUnit(length->unitType(), value); |
| + LengthInterpolatedUnit unitType = convertToInterpolatedUnit(length->typeWithCalcResolved(), value); |
| double values[numLengthInterpolatedUnits] = { }; |
| values[unitType] = value; |
| @@ -126,7 +134,7 @@ PassRefPtrWillBeRawPtr<SVGLength> LengthSVGInterpolation::fromInterpolableValue( |
| ASSERT(element); |
| double value = 0; |
| - SVGLengthType lengthType = LengthTypeNumber; |
| + CSSPrimitiveValue::UnitType unitType = CSSPrimitiveValue::UnitType::Number; |
| unsigned unitTypeCount = 0; |
| // We optimise for the common case where only one unit type is involved. |
| for (size_t i = 0; i < numLengthInterpolatedUnits; i++) { |
| @@ -138,12 +146,12 @@ PassRefPtrWillBeRawPtr<SVGLength> LengthSVGInterpolation::fromInterpolableValue( |
| break; |
| value = entry; |
| - lengthType = unitTypes[i]; |
| + unitType = unitTypes[i]; |
| } |
| if (unitTypeCount > 1) { |
| value = 0; |
| - lengthType = LengthTypeNumber; |
| + unitType = CSSPrimitiveValue::UnitType::Number; |
| // SVGLength does not support calc expressions, so we convert to canonical units. |
| SVGLengthContext lengthContext(element); |
| @@ -158,8 +166,7 @@ PassRefPtrWillBeRawPtr<SVGLength> LengthSVGInterpolation::fromInterpolableValue( |
| value = 0; |
| RefPtrWillBeRawPtr<SVGLength> result = SVGLength::create(modeData.unitMode); // defaults to the length 0 |
| - result->setUnitType(lengthType); |
| - result->setValueInSpecifiedUnits(value); |
| + result->newValueSpecifiedUnits(unitType, value); |
| return result.release(); |
| } |