Bug 1420928 - Add a function that calculates combined duration with a given position in the transition-property list. r?boris
MozReview-Commit-ID: 9YOII9lqtRq
--- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h
@@ -2621,16 +2621,24 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsSt
float GetTransitionDuration(uint32_t aIndex) const
{
return mTransitions[aIndex % mTransitionDurationCount].GetDuration();
}
const nsTimingFunction& GetTransitionTimingFunction(uint32_t aIndex) const
{
return mTransitions[aIndex % mTransitionTimingFunctionCount].GetTimingFunction();
}
+ float GetTransitionCombinedDuration(uint32_t aIndex) const
+ {
+ // https://drafts.csswg.org/css-transitions/#transition-combined-duration
+ return
+ std::max(mTransitions[aIndex % mTransitionDurationCount].GetDuration(),
+ 0.0f)
+ + mTransitions[aIndex % mTransitionDelayCount].GetDelay();
+ }
nsStyleAutoArray<mozilla::StyleAnimation> mAnimations; // [reset]
// The number of elements in mAnimations that are not from repeating
// a list due to another property being longer.
uint32_t mAnimationTimingFunctionCount,
mAnimationDurationCount,
mAnimationDelayCount,