Bug 1248340 - Part 5: Compute Frames timing function in nsRuleNode.
MozReview-Commit-ID: 48mLZfHbJir
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -5506,16 +5506,26 @@ nsRuleNode::ComputeTimingFunction(const
nsTimingFunction::Type type =
(array->Item(1).GetIntValue() ==
NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START) ?
nsTimingFunction::Type::StepStart :
nsTimingFunction::Type::StepEnd;
aResult = nsTimingFunction(type, array->Item(0).GetIntValue());
}
break;
+ case eCSSUnit_Function:
+ {
+ nsCSSValue::Array* array = aValue.GetArrayValue();
+ NS_ASSERTION(array && array->Count() == 2, "Need 2 items");
+ NS_ASSERTION(array->Item(1).GetUnit() == eCSSUnit_Integer,
+ "unexpected frames function value");
+ aResult = nsTimingFunction(nsTimingFunction::Type::Frames,
+ array->Item(1).GetIntValue());
+ }
+ break;
default:
NS_NOTREACHED("Invalid transition property unit");
}
}
static uint8_t
GetWillChangeBitFieldFromPropFlags(const nsCSSPropertyID& aProp)
{