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

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

Issue 1851003002: Throw TypeError if easing string is invalid. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 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: third_party/WebKit/Source/core/animation/TimingInput.cpp
diff --git a/third_party/WebKit/Source/core/animation/TimingInput.cpp b/third_party/WebKit/Source/core/animation/TimingInput.cpp
index 5cb2089077d37e3209f238562cbed94d24e32d5c..26c19bcb66f863004e7d2bbf0fc2463113bb35ef 100644
--- a/third_party/WebKit/Source/core/animation/TimingInput.cpp
+++ b/third_party/WebKit/Source/core/animation/TimingInput.cpp
@@ -4,6 +4,7 @@
#include "core/animation/TimingInput.h"
+#include "bindings/core/v8/ExceptionState.h"
#include "core/animation/AnimationInputHelpers.h"
#include "core/animation/KeyframeEffectOptions.h"
@@ -85,41 +86,40 @@ void TimingInput::setPlaybackDirection(Timing& timing, const String& direction)
}
}
-void TimingInput::setTimingFunction(Timing& timing, const String& timingFunctionString)
+bool TimingInput::setTimingFunction(Timing& timing, const String& timingFunctionString, ExceptionState& exceptionState)
{
- if (RefPtr<TimingFunction> timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString))
+ if (RefPtr<TimingFunction> timingFunction = AnimationInputHelpers::parseTimingFunction(timingFunctionString, exceptionState)) {
timing.timingFunction = timingFunction;
- else
- timing.timingFunction = Timing::defaults().timingFunction;
+ return true;
+ }
+ return false;
}
-Timing TimingInput::convert(const KeyframeEffectOptions& timingInput)
+bool TimingInput::convert(const KeyframeEffectOptions& timingInput, Timing& timingOutput, ExceptionState& exceptionState)
{
- Timing result;
-
- setStartDelay(result, timingInput.delay());
- setEndDelay(result, timingInput.endDelay());
- setFillMode(result, timingInput.fill());
- setIterationStart(result, timingInput.iterationStart());
- setIterationCount(result, timingInput.iterations());
+ setStartDelay(timingOutput, timingInput.delay());
+ setEndDelay(timingOutput, timingInput.endDelay());
+ setFillMode(timingOutput, timingInput.fill());
+ setIterationStart(timingOutput, timingInput.iterationStart());
+ setIterationCount(timingOutput, timingInput.iterations());
if (timingInput.duration().isUnrestrictedDouble())
- setIterationDuration(result, timingInput.duration().getAsUnrestrictedDouble());
+ setIterationDuration(timingOutput, timingInput.duration().getAsUnrestrictedDouble());
else
- setIterationDuration(result, -1);
- setPlaybackRate(result, timingInput.playbackRate());
- setPlaybackDirection(result, timingInput.direction());
- setTimingFunction(result, timingInput.easing());
+ setIterationDuration(timingOutput, -1);
+ setPlaybackRate(timingOutput, timingInput.playbackRate());
+ setPlaybackDirection(timingOutput, timingInput.direction());
+ if (!setTimingFunction(timingOutput, timingInput.easing(), exceptionState))
+ return false;
- result.assertValid();
+ timingOutput.assertValid();
- return result;
+ return true;
}
-Timing TimingInput::convert(double duration)
+bool TimingInput::convert(double duration, Timing& timingOutput)
{
- Timing result;
- setIterationDuration(result, duration);
- return result;
+ setIterationDuration(timingOutput, duration);
+ return true;
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698