| Index: Source/core/css/resolver/CSSToStyleMap.cpp
|
| diff --git a/Source/core/css/resolver/CSSToStyleMap.cpp b/Source/core/css/resolver/CSSToStyleMap.cpp
|
| index 04622787915d680a92a983f62357410b1f12ba7a..28e4e8e636dff8fb4236cd9f8026fe3365b7b17b 100644
|
| --- a/Source/core/css/resolver/CSSToStyleMap.cpp
|
| +++ b/Source/core/css/resolver/CSSToStyleMap.cpp
|
| @@ -479,6 +479,9 @@ PassRefPtr<TimingFunction> CSSToStyleMap::animationTimingFunction(CSSValue* valu
|
| case CSSValueStepStart:
|
| return StepsTimingFunction::preset(StepsTimingFunction::Start);
|
| break;
|
| + case CSSValueStepMiddle:
|
| + return StepsTimingFunction::preset(StepsTimingFunction::Middle);
|
| + break;
|
| case CSSValueStepEnd:
|
| return StepsTimingFunction::preset(StepsTimingFunction::End);
|
| break;
|
| @@ -493,7 +496,7 @@ PassRefPtr<TimingFunction> CSSToStyleMap::animationTimingFunction(CSSValue* valu
|
| return CubicBezierTimingFunction::create(cubicTimingFunction->x1(), cubicTimingFunction->y1(), cubicTimingFunction->x2(), cubicTimingFunction->y2());
|
| } else if (value->isStepsTimingFunctionValue()) {
|
| CSSStepsTimingFunctionValue* stepsTimingFunction = toCSSStepsTimingFunctionValue(value);
|
| - return StepsTimingFunction::create(stepsTimingFunction->numberOfSteps(), stepsTimingFunction->stepAtStart());
|
| + return StepsTimingFunction::create(stepsTimingFunction->numberOfSteps(), stepsTimingFunction->stepAtPosition());
|
| }
|
|
|
| return nullptr;
|
| @@ -502,8 +505,15 @@ PassRefPtr<TimingFunction> CSSToStyleMap::animationTimingFunction(CSSValue* valu
|
| void CSSToStyleMap::mapAnimationTimingFunction(CSSAnimationData* animation, CSSValue* value) const
|
| {
|
| RefPtr<TimingFunction> timingFunction = animationTimingFunction(value, true);
|
| - if (timingFunction)
|
| - animation->setTimingFunction(timingFunction);
|
| + if (timingFunction) {
|
| + // Step middle timing functions are supported up to this point for use in the Web Animations API,
|
| + // but should not be supported for CSS Animations and Transitions.
|
| + bool isStepMiddleFunction = (timingFunction->type() == TimingFunction::StepsFunction) && (toStepsTimingFunction(*timingFunction).stepAtPosition() == StepsTimingFunction::StepAtMiddle);
|
| + if (isStepMiddleFunction)
|
| + animation->setTimingFunction(CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease));
|
| + else
|
| + animation->setTimingFunction(timingFunction);
|
| + }
|
| }
|
|
|
| void CSSToStyleMap::mapNinePieceImage(RenderStyle* mutableStyle, CSSPropertyID property, CSSValue* value, NinePieceImage& image)
|
|
|