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

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationEffectTiming.cpp

Issue 1906463002: Web Animations: Throw TypeErrors for invalid timing parameters (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit tests Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/animation/AnimationEffectTiming.h" 5 #include "core/animation/AnimationEffectTiming.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/UnionTypesCore.h" 8 #include "bindings/core/v8/UnionTypesCore.h"
9 #include "core/animation/AnimationEffect.h" 9 #include "core/animation/AnimationEffect.h"
10 #include "core/animation/KeyframeEffect.h" 10 #include "core/animation/KeyframeEffect.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 m_parent->updateSpecifiedTiming(timing); 84 m_parent->updateSpecifiedTiming(timing);
85 } 85 }
86 86
87 void AnimationEffectTiming::setFill(String fill) 87 void AnimationEffectTiming::setFill(String fill)
88 { 88 {
89 Timing timing = m_parent->specifiedTiming(); 89 Timing timing = m_parent->specifiedTiming();
90 TimingInput::setFillMode(timing, fill); 90 TimingInput::setFillMode(timing, fill);
91 m_parent->updateSpecifiedTiming(timing); 91 m_parent->updateSpecifiedTiming(timing);
92 } 92 }
93 93
94 void AnimationEffectTiming::setIterationStart(double iterationStart) 94 void AnimationEffectTiming::setIterationStart(double iterationStart, ExceptionSt ate& exceptionState)
95 { 95 {
96 Timing timing = m_parent->specifiedTiming(); 96 Timing timing = m_parent->specifiedTiming();
97 TimingInput::setIterationStart(timing, iterationStart); 97 if (TimingInput::setIterationStart(timing, iterationStart, exceptionState))
98 m_parent->updateSpecifiedTiming(timing); 98 m_parent->updateSpecifiedTiming(timing);
99 } 99 }
100 100
101 void AnimationEffectTiming::setIterations(double iterations) 101 void AnimationEffectTiming::setIterations(double iterations, ExceptionState& exc eptionState)
102 { 102 {
103 Timing timing = m_parent->specifiedTiming(); 103 Timing timing = m_parent->specifiedTiming();
104 TimingInput::setIterationCount(timing, iterations); 104 if (TimingInput::setIterationCount(timing, iterations, exceptionState))
105 m_parent->updateSpecifiedTiming(timing); 105 m_parent->updateSpecifiedTiming(timing);
106 } 106 }
107 107
108 void AnimationEffectTiming::setDuration(const UnrestrictedDoubleOrString& durati onOrAuto) 108 void AnimationEffectTiming::setDuration(const UnrestrictedDoubleOrString& durati on, ExceptionState& exceptionState)
109 { 109 {
110 // Any strings other than "auto" are coerced to "auto".
111 double duration = durationOrAuto.isString() ? std::numeric_limits<double>::q uiet_NaN() : durationOrAuto.getAsUnrestrictedDouble();
112 Timing timing = m_parent->specifiedTiming(); 110 Timing timing = m_parent->specifiedTiming();
113 TimingInput::setIterationDuration(timing, duration); 111 if (TimingInput::setIterationDuration(timing, duration, exceptionState))
114 m_parent->updateSpecifiedTiming(timing); 112 m_parent->updateSpecifiedTiming(timing);
115 } 113 }
116 114
117 void AnimationEffectTiming::setPlaybackRate(double playbackRate) 115 void AnimationEffectTiming::setPlaybackRate(double playbackRate)
118 { 116 {
119 Timing timing = m_parent->specifiedTiming(); 117 Timing timing = m_parent->specifiedTiming();
120 TimingInput::setPlaybackRate(timing, playbackRate); 118 TimingInput::setPlaybackRate(timing, playbackRate);
121 m_parent->updateSpecifiedTiming(timing); 119 m_parent->updateSpecifiedTiming(timing);
122 } 120 }
123 121
124 void AnimationEffectTiming::setDirection(String direction) 122 void AnimationEffectTiming::setDirection(String direction)
(...skipping 14 matching lines...) Expand all
139 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState)) 137 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState))
140 m_parent->updateSpecifiedTiming(timing); 138 m_parent->updateSpecifiedTiming(timing);
141 } 139 }
142 140
143 DEFINE_TRACE(AnimationEffectTiming) 141 DEFINE_TRACE(AnimationEffectTiming)
144 { 142 {
145 visitor->trace(m_parent); 143 visitor->trace(m_parent);
146 } 144 }
147 145
148 } // namespace blink 146 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698