OLD | NEW |
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/TimingInput.h" | 5 #include "core/animation/TimingInput.h" |
6 | 6 |
7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/UnrestrictedDoubleOrKeyframeAnimationOptions.h" |
8 #include "bindings/core/v8/UnrestrictedDoubleOrKeyframeEffectOptions.h" | 9 #include "bindings/core/v8/UnrestrictedDoubleOrKeyframeEffectOptions.h" |
9 #include "core/animation/AnimationInputHelpers.h" | 10 #include "core/animation/AnimationInputHelpers.h" |
10 #include "core/animation/KeyframeEffectOptions.h" | 11 #include "core/animation/KeyframeEffectOptions.h" |
11 | 12 |
12 namespace blink { | 13 namespace blink { |
13 | 14 |
14 void TimingInput::SetStartDelay(Timing& timing, double start_delay) { | 15 void TimingInput::SetStartDelay(Timing& timing, double start_delay) { |
15 if (std::isfinite(start_delay)) | 16 if (std::isfinite(start_delay)) |
16 timing.start_delay = start_delay / 1000; | 17 timing.start_delay = start_delay / 1000; |
17 else | 18 else |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 } else if (options.isUnrestrictedDouble()) { | 132 } else if (options.isUnrestrictedDouble()) { |
132 return Convert(options.getAsUnrestrictedDouble(), timing_output, | 133 return Convert(options.getAsUnrestrictedDouble(), timing_output, |
133 exception_state); | 134 exception_state); |
134 } else if (options.isNull()) { | 135 } else if (options.isNull()) { |
135 return true; | 136 return true; |
136 } | 137 } |
137 NOTREACHED(); | 138 NOTREACHED(); |
138 return false; | 139 return false; |
139 } | 140 } |
140 | 141 |
| 142 bool TimingInput::Convert( |
| 143 const UnrestrictedDoubleOrKeyframeAnimationOptions& options, |
| 144 Timing& timing_output, |
| 145 Document* document, |
| 146 ExceptionState& exception_state) { |
| 147 if (options.isKeyframeAnimationOptions()) { |
| 148 return Convert(options.getAsKeyframeAnimationOptions(), timing_output, |
| 149 document, exception_state); |
| 150 } else if (options.isUnrestrictedDouble()) { |
| 151 return Convert(options.getAsUnrestrictedDouble(), timing_output, |
| 152 exception_state); |
| 153 } else if (options.isNull()) { |
| 154 return true; |
| 155 } |
| 156 NOTREACHED(); |
| 157 return false; |
| 158 } |
| 159 |
141 bool TimingInput::Convert(const KeyframeEffectOptions& timing_input, | 160 bool TimingInput::Convert(const KeyframeEffectOptions& timing_input, |
142 Timing& timing_output, | 161 Timing& timing_output, |
143 Document* document, | 162 Document* document, |
144 ExceptionState& exception_state) { | 163 ExceptionState& exception_state) { |
145 SetStartDelay(timing_output, timing_input.delay()); | 164 SetStartDelay(timing_output, timing_input.delay()); |
146 SetEndDelay(timing_output, timing_input.endDelay()); | 165 SetEndDelay(timing_output, timing_input.endDelay()); |
147 SetFillMode(timing_output, timing_input.fill()); | 166 SetFillMode(timing_output, timing_input.fill()); |
148 | 167 |
149 if (!SetIterationStart(timing_output, timing_input.iterationStart(), | 168 if (!SetIterationStart(timing_output, timing_input.iterationStart(), |
150 exception_state)) | 169 exception_state)) |
(...skipping 12 matching lines...) Expand all Loading... |
163 | 182 |
164 if (!SetTimingFunction(timing_output, timing_input.easing(), document, | 183 if (!SetTimingFunction(timing_output, timing_input.easing(), document, |
165 exception_state)) | 184 exception_state)) |
166 return false; | 185 return false; |
167 | 186 |
168 timing_output.AssertValid(); | 187 timing_output.AssertValid(); |
169 | 188 |
170 return true; | 189 return true; |
171 } | 190 } |
172 | 191 |
| 192 bool TimingInput::Convert(const KeyframeAnimationOptions& timing_input, |
| 193 Timing& timing_output, |
| 194 Document* document, |
| 195 ExceptionState& exception_state) { |
| 196 // The "id" field isn't used, so upcast to KeyframeEffectOptions. |
| 197 const KeyframeEffectOptions* const timing_input_ptr = &timing_input; |
| 198 return Convert(*timing_input_ptr, timing_output, document, exception_state); |
| 199 } |
| 200 |
173 bool TimingInput::Convert(double duration, | 201 bool TimingInput::Convert(double duration, |
174 Timing& timing_output, | 202 Timing& timing_output, |
175 ExceptionState& exception_state) { | 203 ExceptionState& exception_state) { |
176 DCHECK(timing_output == Timing::Defaults()); | 204 DCHECK(timing_output == Timing::Defaults()); |
177 return SetIterationDuration( | 205 return SetIterationDuration( |
178 timing_output, | 206 timing_output, |
179 UnrestrictedDoubleOrString::fromUnrestrictedDouble(duration), | 207 UnrestrictedDoubleOrString::fromUnrestrictedDouble(duration), |
180 exception_state); | 208 exception_state); |
181 } | 209 } |
182 | 210 |
183 } // namespace blink | 211 } // namespace blink |
OLD | NEW |