OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 OwnPtr<CSSAnimationUpdate> update = m_pendingUpdate.release(); | 215 OwnPtr<CSSAnimationUpdate> update = m_pendingUpdate.release(); |
216 | 216 |
217 for (Vector<AtomicString>::const_iterator iter = update->cancelledAnimationN
ames().begin(); iter != update->cancelledAnimationNames().end(); ++iter) | 217 for (Vector<AtomicString>::const_iterator iter = update->cancelledAnimationN
ames().begin(); iter != update->cancelledAnimationNames().end(); ++iter) |
218 m_animations.take(*iter)->cancel(); | 218 m_animations.take(*iter)->cancel(); |
219 | 219 |
220 // FIXME: Apply updates to play-state. | 220 // FIXME: Apply updates to play-state. |
221 | 221 |
222 for (Vector<CSSAnimationUpdate::NewAnimation>::const_iterator iter = update-
>newAnimations().begin(); iter != update->newAnimations().end(); ++iter) { | 222 for (Vector<CSSAnimationUpdate::NewAnimation>::const_iterator iter = update-
>newAnimations().begin(); iter != update->newAnimations().end(); ++iter) { |
223 OwnPtr<CSSAnimations::EventDelegate> eventDelegate = adoptPtr(new EventD
elegate(element, iter->name)); | 223 OwnPtr<CSSAnimations::EventDelegate> eventDelegate = adoptPtr(new EventD
elegate(element, iter->name)); |
224 RefPtr<Animation> animation = Animation::create(element, iter->animation
->effect(), iter->animation->specified(), eventDelegate.release()); | 224 RefPtr<Animation> animation = Animation::create(element, iter->animation
->effect(), iter->animation->specified(), eventDelegate.release()); |
225 RefPtr<Player> player = element->document()->timeline()->play(animation.
get()); | 225 RefPtr<Player> player = element->document().timeline()->play(animation.g
et()); |
226 m_animations.set(iter->name, player.get()); | 226 m_animations.set(iter->name, player.get()); |
227 } | 227 } |
228 } | 228 } |
229 | 229 |
230 void CSSAnimations::cancel() | 230 void CSSAnimations::cancel() |
231 { | 231 { |
232 for (AnimationMap::iterator iter = m_animations.begin(); iter != m_animation
s.end(); ++iter) | 232 for (AnimationMap::iterator iter = m_animations.begin(); iter != m_animation
s.end(); ++iter) |
233 iter->value->cancel(); | 233 iter->value->cancel(); |
234 | 234 |
235 m_animations.clear(); | 235 m_animations.clear(); |
236 m_pendingUpdate = nullptr; | 236 m_pendingUpdate = nullptr; |
237 } | 237 } |
238 | 238 |
239 void CSSAnimations::EventDelegate::maybeDispatch(Document::ListenerType listener
Type, AtomicString& eventName, double elapsedTime) | 239 void CSSAnimations::EventDelegate::maybeDispatch(Document::ListenerType listener
Type, AtomicString& eventName, double elapsedTime) |
240 { | 240 { |
241 if (m_target->document()->hasListenerType(listenerType)) | 241 if (m_target->document().hasListenerType(listenerType)) |
242 m_target->document()->timeline()->addEventToDispatch(m_target, WebKitAni
mationEvent::create(eventName, m_name, elapsedTime)); | 242 m_target->document().timeline()->addEventToDispatch(m_target, WebKitAnim
ationEvent::create(eventName, m_name, elapsedTime)); |
243 } | 243 } |
244 | 244 |
245 void CSSAnimations::EventDelegate::onEventCondition(const TimedItem* timedItem,
bool isFirstSample, TimedItem::Phase previousPhase, double previousIteration) | 245 void CSSAnimations::EventDelegate::onEventCondition(const TimedItem* timedItem,
bool isFirstSample, TimedItem::Phase previousPhase, double previousIteration) |
246 { | 246 { |
247 // Events for a single document are queued and dispatched as a group at | 247 // Events for a single document are queued and dispatched as a group at |
248 // the end of DocumentTimeline::serviceAnimations. | 248 // the end of DocumentTimeline::serviceAnimations. |
249 // FIXME: Events which are queued outside of serviceAnimations should | 249 // FIXME: Events which are queued outside of serviceAnimations should |
250 // trigger a timer to dispatch when control is released. | 250 // trigger a timer to dispatch when control is released. |
251 const TimedItem::Phase currentPhase = timedItem->phase(); | 251 const TimedItem::Phase currentPhase = timedItem->phase(); |
252 const double currentIteration = timedItem->currentIteration(); | 252 const double currentIteration = timedItem->currentIteration(); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 case CSSPropertyWordSpacing: | 379 case CSSPropertyWordSpacing: |
380 case CSSPropertyZIndex: | 380 case CSSPropertyZIndex: |
381 case CSSPropertyZoom: | 381 case CSSPropertyZoom: |
382 return true; | 382 return true; |
383 default: | 383 default: |
384 return false; | 384 return false; |
385 } | 385 } |
386 } | 386 } |
387 | 387 |
388 } // namespace WebCore | 388 } // namespace WebCore |
OLD | NEW |