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

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: Fix comment typo 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/parser/BisonCSSParser-in.cpp
diff --git a/Source/core/css/parser/BisonCSSParser-in.cpp b/Source/core/css/parser/BisonCSSParser-in.cpp
index 3ae3360ca552c196d1ea8f38df5284128d5a7437..b88c2bcade103311755ec8c5ca5c60e92c88dcc1 100644
--- a/Source/core/css/parser/BisonCSSParser-in.cpp
+++ b/Source/core/css/parser/BisonCSSParser-in.cpp
@@ -4304,7 +4304,8 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::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.
@@ -4320,7 +4321,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseAnimationTimingFunction
// There are two values.
int numSteps;
- bool stepAtStart = false;
+ StepsTimingFunction::StepAtPosition stepAtPosition = StepsTimingFunction::StepAtEnd;
CSSParserValue* v = args->current();
if (!validUnit(v, FInteger))
@@ -4335,12 +4336,24 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseAnimationTimingFunction
if (!isComma(v))
return nullptr;
v = args->next();
- if (v->id != CSSValueStart && v->id != CSSValueEnd)
+ switch (v->id) {
+ case CSSValueMiddle:
+ if (!RuntimeEnabledFeatures::webAnimationsAPIEnabled())
+ return nullptr;
+ stepAtPosition = StepsTimingFunction::StepAtMiddle;
+ break;
+ case CSSValueStart:
+ stepAtPosition = StepsTimingFunction::StepAtStart;
+ break;
+ case CSSValueEnd:
+ stepAtPosition = StepsTimingFunction::StepAtEnd;
+ break;
+ default:
return nullptr;
- stepAtStart = v->id == CSSValueStart;
+ }
}
- return CSSStepsTimingFunctionValue::create(numSteps, stepAtStart);
+ return CSSStepsTimingFunctionValue::create(numSteps, stepAtPosition);
}
if (equalIgnoringCase(value->function->name, "cubic-bezier(")) {

Powered by Google App Engine
This is Rietveld 408576698