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

Unified Diff: Source/core/css/parser/BisonCSSParser-in.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: Remove bool argument from parseAnimationTimingFunctionValue 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
« no previous file with comments | « Source/core/css/parser/BisonCSSParser.h ('k') | Source/core/css/parser/BisonCSSParserTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(")) {
« no previous file with comments | « Source/core/css/parser/BisonCSSParser.h ('k') | Source/core/css/parser/BisonCSSParserTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698