Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(260)

Unified Diff: Source/core/animation/TimingInput.cpp

Issue 947923002: Add AnimationTimingProperties dictionary (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/TimingInput.cpp
diff --git a/Source/core/animation/TimingInput.cpp b/Source/core/animation/TimingInput.cpp
index 3c04e6ee44b3d054114e23fda4d8cbc3736847b9..64f510ec37448a4196874fdd40e88e100795259e 100644
--- a/Source/core/animation/TimingInput.cpp
+++ b/Source/core/animation/TimingInput.cpp
@@ -5,8 +5,8 @@
#include "config.h"
#include "core/animation/TimingInput.h"
-#include "bindings/core/v8/Dictionary.h"
#include "core/animation/AnimationInputHelpers.h"
+#include "core/animation/AnimationTimingProperties.h"
namespace blink {
@@ -94,49 +94,22 @@ void TimingInput::setTimingFunction(Timing& timing, const String& timingFunction
timing.timingFunction = Timing::defaults().timingFunction;
}
-Timing TimingInput::convert(const Dictionary& timingInputDictionary)
+Timing TimingInput::convert(const AnimationTimingProperties& timingInput)
{
Timing result;
- // FIXME: This method needs to be refactored to handle invalid
- // null, NaN, Infinity values better.
- // See: http://www.w3.org/TR/WebIDL/#es-double
- double startDelay = Timing::defaults().startDelay;
- DictionaryHelper::get(timingInputDictionary, "delay", startDelay);
- setStartDelay(result, startDelay);
-
- double endDelay = Timing::defaults().endDelay;
- DictionaryHelper::get(timingInputDictionary, "endDelay", endDelay);
- setEndDelay(result, endDelay);
-
- String fillMode;
- DictionaryHelper::get(timingInputDictionary, "fill", fillMode);
- setFillMode(result, fillMode);
-
- double iterationStart = Timing::defaults().iterationStart;
- DictionaryHelper::get(timingInputDictionary, "iterationStart", iterationStart);
- setIterationStart(result, iterationStart);
-
- double iterationCount = Timing::defaults().iterationCount;
- DictionaryHelper::get(timingInputDictionary, "iterations", iterationCount);
- setIterationCount(result, iterationCount);
-
- double iterationDuration = 0;
- if (DictionaryHelper::get(timingInputDictionary, "duration", iterationDuration)) {
- setIterationDuration(result, iterationDuration);
- }
-
- double playbackRate = Timing::defaults().playbackRate;
- DictionaryHelper::get(timingInputDictionary, "playbackRate", playbackRate);
- setPlaybackRate(result, playbackRate);
-
- String direction;
- DictionaryHelper::get(timingInputDictionary, "direction", direction);
- setPlaybackDirection(result, direction);
-
- String timingFunctionString;
- DictionaryHelper::get(timingInputDictionary, "easing", timingFunctionString);
- setTimingFunction(result, timingFunctionString);
+ setStartDelay(result, timingInput.delay());
+ setEndDelay(result, timingInput.endDelay());
+ setFillMode(result, timingInput.fill());
+ setIterationStart(result, timingInput.iterationStart());
+ setIterationCount(result, timingInput.iterations());
+ if (timingInput.duration().isUnrestrictedDouble())
+ setIterationDuration(result, timingInput.duration().getAsUnrestrictedDouble());
+ else
+ setIterationDuration(result, -1);
+ setPlaybackRate(result, timingInput.playbackRate());
+ setPlaybackDirection(result, timingInput.direction());
+ setTimingFunction(result, timingInput.easing());
result.assertValid();

Powered by Google App Engine
This is Rietveld 408576698