Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / animation / Timing.h
index 5bc41b7..fb2ef09 100644 (file)
@@ -39,6 +39,7 @@ namespace WebCore {
 
 struct Timing {
     enum FillMode {
+        FillModeAuto,
         FillModeNone,
         FillModeForwards,
         FillModeBackwards,
@@ -54,11 +55,11 @@ struct Timing {
 
     Timing()
         : startDelay(0)
-        , fillMode(FillModeForwards)
+        , endDelay(0)
+        , fillMode(FillModeAuto)
         , iterationStart(0)
         , iterationCount(1)
-        , hasIterationDuration(false)
-        , iterationDuration(0)
+        , iterationDuration(std::numeric_limits<double>::quiet_NaN())
         , playbackRate(1)
         , direction(PlaybackDirectionNormal)
         , timingFunction(LinearTimingFunction::create())
@@ -68,19 +69,20 @@ struct Timing {
     void assertValid() const
     {
         ASSERT(std::isfinite(startDelay));
+        ASSERT(std::isfinite(endDelay));
         ASSERT(std::isfinite(iterationStart));
         ASSERT(iterationStart >= 0);
         ASSERT(iterationCount >= 0);
-        ASSERT(iterationDuration >= 0);
+        ASSERT(std::isnan(iterationDuration) || iterationDuration >= 0);
         ASSERT(std::isfinite(playbackRate));
         ASSERT(timingFunction);
     }
 
     double startDelay;
+    double endDelay;
     FillMode fillMode;
     double iterationStart;
     double iterationCount;
-    bool hasIterationDuration;
     double iterationDuration;
     // FIXME: Add activeDuration.
     double playbackRate;