Bug 1374882 - Make TimingParamsFromOptionsUnion member function. r?birtles draft
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Thu, 22 Jun 2017 12:12:42 +0900
changeset 598704 47ae2d52cd1c257991e58ee376200dbd87f64a9b
parent 598703 dc33e00dad90346466fefaa158bc0d79a53668a9
child 598705 d7d0f17206f6483fd01ad42424f743597a14dd15
push id65289
push userhikezoe@mozilla.com
push dateThu, 22 Jun 2017 03:12:57 +0000
reviewersbirtles
bugs1374882
milestone56.0a1
Bug 1374882 - Make TimingParamsFromOptionsUnion member function. r?birtles MozReview-Commit-ID: 7AQKrHPdzeD
dom/animation/TimingParams.cpp
dom/animation/TimingParams.h
--- a/dom/animation/TimingParams.cpp
+++ b/dom/animation/TimingParams.cpp
@@ -35,29 +35,30 @@ template <>
 GetTimingProperties(
   const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions)
 {
   MOZ_ASSERT(aOptions.IsKeyframeAnimationOptions());
   return aOptions.GetAsKeyframeAnimationOptions();
 }
 
 template <class OptionsType>
-static TimingParams
-TimingParamsFromOptionsUnion(const OptionsType& aOptions,
-                             nsIDocument* aDocument,
-                             ErrorResult& aRv)
+/* static */ TimingParams
+TimingParams::FromOptionsType(const OptionsType& aOptions,
+                              nsIDocument* aDocument,
+                              ErrorResult& aRv)
 {
   TimingParams result;
   if (aOptions.IsUnrestrictedDouble()) {
     double durationInMs = aOptions.GetAsUnrestrictedDouble();
     if (durationInMs >= 0) {
       result.mDuration.emplace(
         StickyTimeDuration::FromMilliseconds(durationInMs));
     } else {
       aRv.Throw(NS_ERROR_DOM_TYPE_ERR);
+      return result;
     }
   } else {
     const dom::AnimationEffectTimingProperties& timing =
       GetTimingProperties(aOptions);
 
     Maybe<StickyTimeDuration> duration =
       TimingParams::ParseDuration(timing.mDuration, aRv);
     if (aRv.Failed()) {
@@ -90,26 +91,26 @@ TimingParamsFromOptionsUnion(const Optio
 }
 
 /* static */ TimingParams
 TimingParams::FromOptionsUnion(
   const dom::UnrestrictedDoubleOrKeyframeEffectOptions& aOptions,
   nsIDocument* aDocument,
   ErrorResult& aRv)
 {
-  return TimingParamsFromOptionsUnion(aOptions, aDocument, aRv);
+  return FromOptionsType(aOptions, aDocument, aRv);
 }
 
 /* static */ TimingParams
 TimingParams::FromOptionsUnion(
   const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
   nsIDocument* aDocument,
   ErrorResult& aRv)
 {
-  return TimingParamsFromOptionsUnion(aOptions, aDocument, aRv);
+  return FromOptionsType(aOptions, aDocument, aRv);
 }
 
 /* static */ Maybe<ComputedTimingFunction>
 TimingParams::ParseEasing(const nsAString& aEasing,
                           nsIDocument* aDocument,
                           ErrorResult& aRv)
 {
   MOZ_ASSERT(aDocument);
--- a/dom/animation/TimingParams.h
+++ b/dom/animation/TimingParams.h
@@ -30,16 +30,21 @@ namespace dom {
 class UnrestrictedDoubleOrKeyframeEffectOptions;
 class UnrestrictedDoubleOrKeyframeAnimationOptions;
 }
 
 struct TimingParams
 {
   TimingParams() = default;
 
+  template <class OptionsType>
+  static TimingParams FromOptionsType(
+    const OptionsType& aOptions,
+    nsIDocument* aDocument,
+    ErrorResult& aRv);
   static TimingParams FromOptionsUnion(
     const dom::UnrestrictedDoubleOrKeyframeEffectOptions& aOptions,
     nsIDocument* aDocument, ErrorResult& aRv);
   static TimingParams FromOptionsUnion(
     const dom::UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
     nsIDocument* aDocument, ErrorResult& aRv);
 
   // Range-checks and validates an UnrestrictedDoubleOrString or