Bug 1244641 - Part 2: Add duration implementation in dom/animation/AnimationEffectTiming.cpp. r=hiro, r=smaug

MozReview-Commit-ID: K5wmKo1U2JP
This commit is contained in:
Ryo Motozawa 2016-02-27 06:39:39 +09:00
parent d890ebd486
commit aef061449a
3 changed files with 26 additions and 2 deletions

View File

@ -18,5 +18,28 @@ AnimationEffectTiming::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenPr
return AnimationEffectTimingBinding::Wrap(aCx, this, aGivenProto);
}
void
AnimationEffectTiming::SetDuration(const UnrestrictedDoubleOrString& aDuration)
{
if (mTiming.mDuration.IsUnrestrictedDouble() &&
aDuration.IsUnrestrictedDouble() &&
mTiming.mDuration.GetAsUnrestrictedDouble() ==
aDuration.GetAsUnrestrictedDouble()) {
return;
}
if (mTiming.mDuration.IsString() && aDuration.IsString() &&
mTiming.mDuration.GetAsString() == aDuration.GetAsString()) {
return;
}
if (aDuration.IsUnrestrictedDouble()) {
mTiming.mDuration.SetAsUnrestrictedDouble() =
aDuration.GetAsUnrestrictedDouble();
} else {
mTiming.mDuration.SetAsString() = aDuration.GetAsString();
}
}
} // namespace dom
} // namespace mozilla

View File

@ -24,6 +24,8 @@ public:
void Unlink() override { mEffect = nullptr; }
void SetDuration(const UnrestrictedDoubleOrString& aDuration);
private:
KeyframeEffect* MOZ_NON_OWNING_REF mEffect;
};

View File

@ -22,8 +22,7 @@ interface AnimationEffectTiming : AnimationEffectTimingReadOnly {
//inherit attribute double iterationStart;
//Bug 1244640 - implement AnimationEffectTiming iterations
//inherit attribute unrestricted double iterations;
//Bug 1244641 - implement AnimationEffectTiming duration
//inherit attribute (unrestricted double or DOMString) duration;
inherit attribute (unrestricted double or DOMString) duration;
//Bug 1244642 - implement AnimationEffectTiming direction
//inherit attribute PlaybackDirection direction;
//Bug 1244643 - implement AnimationEffectTiming easing