Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: Source/core/css/resolver/CSSToStyleMap.cpp

Issue 149363002: Web Animations API: Implement step-middle and steps(x, middle) timing functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix TimingFunctionTestHelperTest Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/css/resolver/CSSToStyleMap.cpp
diff --git a/Source/core/css/resolver/CSSToStyleMap.cpp b/Source/core/css/resolver/CSSToStyleMap.cpp
index 406b16c3d5bf155e03b5a1fc63cd26f9a542f4fc..c8c2a435c98030056faaaecb3b45d2116b7d27b5 100644
--- a/Source/core/css/resolver/CSSToStyleMap.cpp
+++ b/Source/core/css/resolver/CSSToStyleMap.cpp
@@ -475,6 +475,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;
@@ -489,7 +492,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 0;
@@ -498,8 +501,11 @@ 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) {
+ bool isStepMiddleFunction = (timingFunction->type() == TimingFunction::StepsFunction) && (toStepsTimingFunction(*timingFunction).stepAtPosition() == StepsTimingFunction::StepAtMiddle);
+ if (!isStepMiddleFunction)
dstockwell 2014/02/24 04:58:40 need a fixme about why
rjwright 2014/02/24 11:17:46 Done as comment. Do you want it to be a fixme?
+ animation->setTimingFunction(timingFunction);
+ }
}
void CSSToStyleMap::mapNinePieceImage(RenderStyle* mutableStyle, CSSPropertyID property, CSSValue* value, NinePieceImage& image)

Powered by Google App Engine
This is Rietveld 408576698