| 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;
|
| + 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(")) {
|
|
|