Chromium Code Reviews| Index: Source/core/css/parser/BisonCSSParser-in.cpp |
| diff --git a/Source/core/css/parser/BisonCSSParser-in.cpp b/Source/core/css/parser/BisonCSSParser-in.cpp |
| index 9e1eff2d08631ace0f83833351b22cdc5e2b8e86..bc8ca5783eaa73c3d4bdb51cbf73bfa65a5d3b0e 100644 |
| --- a/Source/core/css/parser/BisonCSSParser-in.cpp |
| +++ b/Source/core/css/parser/BisonCSSParser-in.cpp |
| @@ -4324,7 +4324,8 @@ PassRefPtr<CSSValue> BisonCSSParser::parseAnimationTimingFunction() |
| { |
| CSSParserValue* value = m_valueList->current(); |
| if (value->id == CSSValueEase || value->id == CSSValueLinear || value->id == CSSValueEaseIn || value->id == CSSValueEaseOut |
| - || value->id == CSSValueEaseInOut || value->id == CSSValueStepStart || value->id == CSSValueStepEnd) |
| + || value->id == CSSValueEaseInOut || value->id == CSSValueStepStart || value->id == CSSValueStepEnd |
| + || (value->id == CSSValueStepMiddle && RuntimeEnabledFeatures::webAnimationsAPIEnabled())) |
| return cssValuePool().createIdentifierValue(value->id); |
| // We must be a function. |
| @@ -4340,7 +4341,7 @@ PassRefPtr<CSSValue> BisonCSSParser::parseAnimationTimingFunction() |
| // There are two values. |
| int numSteps; |
| - bool stepAtStart = false; |
| + StepsTimingFunction::StepAtPosition stepAtPosition = StepsTimingFunction::StepAtEnd; |
| CSSParserValue* v = args->current(); |
| if (!validUnit(v, FInteger)) |
| @@ -4355,12 +4356,25 @@ PassRefPtr<CSSValue> BisonCSSParser::parseAnimationTimingFunction() |
| if (!isComma(v)) |
| return 0; |
| v = args->next(); |
| - if (v->id != CSSValueStart && v->id != CSSValueEnd) |
| + switch (v->id) { |
| + case CSSValueMiddle: |
| + if (RuntimeEnabledFeatures::webAnimationsAPIEnabled()) |
| + stepAtPosition = StepsTimingFunction::StepAtMiddle; |
| + else |
| + return 0; |
|
alancutter (OOO until 2018)
2014/02/19 03:17:45
Avoiding else branches by returning earlier is pre
rjwright
2014/02/24 11:17:46
Done.
|
| + break; |
| + case CSSValueStart: |
| + stepAtPosition = StepsTimingFunction::StepAtStart; |
| + break; |
| + case CSSValueEnd: |
| + stepAtPosition = StepsTimingFunction::StepAtEnd; |
| + break; |
| + default: |
| return 0; |
| - stepAtStart = v->id == CSSValueStart; |
| + } |
| } |
| - return CSSStepsTimingFunctionValue::create(numSteps, stepAtStart); |
| + return CSSStepsTimingFunctionValue::create(numSteps, stepAtPosition); |
| } |
| if (equalIgnoringCase(value->function->name, "cubic-bezier(")) { |