mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 22:04:36 +00:00
Bug 1456394 - Factor out TimingParams::FromEffectTiming; r=hiro
Factoring out this method makes the code a little easier to read, particularly when in the next patch in this series we add a TimingParams::MergeOptionalEffectTiming method. MozReview-Commit-ID: 5AU6IfN2grZ --HG-- extra : rebase_source : f90614c7dd03413b4ce05d62d3ac73f0ba0e7dc3
This commit is contained in:
parent
79bd9b3a55
commit
4ab18a6435
@ -44,6 +44,7 @@ TimingParams::FromOptionsType(const OptionsType& aOptions,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
TimingParams result;
|
||||
|
||||
if (aOptions.IsUnrestrictedDouble()) {
|
||||
double durationInMs = aOptions.GetAsUnrestrictedDouble();
|
||||
if (durationInMs >= 0) {
|
||||
@ -53,38 +54,11 @@ TimingParams::FromOptionsType(const OptionsType& aOptions,
|
||||
aRv.Throw(NS_ERROR_DOM_TYPE_ERR);
|
||||
return result;
|
||||
}
|
||||
result.Update();
|
||||
} else {
|
||||
const dom::EffectTiming& timing = GetTimingProperties(aOptions);
|
||||
|
||||
Maybe<StickyTimeDuration> duration =
|
||||
TimingParams::ParseDuration(timing.mDuration, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
TimingParams::ValidateIterationStart(timing.mIterationStart, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
TimingParams::ValidateIterations(timing.mIterations, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
Maybe<ComputedTimingFunction> easing =
|
||||
TimingParams::ParseEasing(timing.mEasing, aDocument, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result.mDuration = duration;
|
||||
result.mDelay = TimeDuration::FromMilliseconds(timing.mDelay);
|
||||
result.mEndDelay = TimeDuration::FromMilliseconds(timing.mEndDelay);
|
||||
result.mIterations = timing.mIterations;
|
||||
result.mIterationStart = timing.mIterationStart;
|
||||
result.mDirection = timing.mDirection;
|
||||
result.mFill = timing.mFill;
|
||||
result.mFunction = easing;
|
||||
result = FromEffectTiming(timing, aDocument, aRv);
|
||||
}
|
||||
result.Update();
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -107,6 +81,46 @@ TimingParams::FromOptionsUnion(
|
||||
return FromOptionsType(aOptions, aDocument, aRv);
|
||||
}
|
||||
|
||||
/* static */ TimingParams
|
||||
TimingParams::FromEffectTiming(const dom::EffectTiming& aEffectTiming,
|
||||
nsIDocument* aDocument,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
TimingParams result;
|
||||
|
||||
Maybe<StickyTimeDuration> duration =
|
||||
TimingParams::ParseDuration(aEffectTiming.mDuration, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
TimingParams::ValidateIterationStart(aEffectTiming.mIterationStart, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
TimingParams::ValidateIterations(aEffectTiming.mIterations, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
Maybe<ComputedTimingFunction> easing =
|
||||
TimingParams::ParseEasing(aEffectTiming.mEasing, aDocument, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
result.mDuration = duration;
|
||||
result.mDelay = TimeDuration::FromMilliseconds(aEffectTiming.mDelay);
|
||||
result.mEndDelay = TimeDuration::FromMilliseconds(aEffectTiming.mEndDelay);
|
||||
result.mIterations = aEffectTiming.mIterations;
|
||||
result.mIterationStart = aEffectTiming.mIterationStart;
|
||||
result.mDirection = aEffectTiming.mDirection;
|
||||
result.mFill = aEffectTiming.mFill;
|
||||
result.mFunction = easing;
|
||||
|
||||
result.Update();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* static */ Maybe<ComputedTimingFunction>
|
||||
TimingParams::ParseEasing(const nsAString& aEasing,
|
||||
nsIDocument* aDocument,
|
||||
|
@ -75,6 +75,10 @@ struct TimingParams
|
||||
static TimingParams FromOptionsUnion(
|
||||
const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
|
||||
nsIDocument* aDocument, ErrorResult& aRv);
|
||||
static TimingParams FromEffectTiming(
|
||||
const dom::EffectTiming& aEffectTiming,
|
||||
nsIDocument* aDocument,
|
||||
ErrorResult& aRv);
|
||||
|
||||
// Range-checks and validates an UnrestrictedDoubleOrString or
|
||||
// OwningUnrestrictedDoubleOrString object and converts to a
|
||||
|
Loading…
x
Reference in New Issue
Block a user