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

Side by Side Diff: Source/WebCore/page/animation/KeyframeAnimation.cpp

Issue 10696154: Merge 120639 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 5 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 /* 1 /*
2 * Copyright (C) 2007, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2012 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 namespace WebCore { 44 namespace WebCore {
45 45
46 KeyframeAnimation::KeyframeAnimation(const Animation* animation, RenderObject* r enderer, int index, CompositeAnimation* compAnim, RenderStyle* unanimatedStyle) 46 KeyframeAnimation::KeyframeAnimation(const Animation* animation, RenderObject* r enderer, int index, CompositeAnimation* compAnim, RenderStyle* unanimatedStyle)
47 : AnimationBase(animation, renderer, compAnim) 47 : AnimationBase(animation, renderer, compAnim)
48 , m_keyframes(renderer, animation->name()) 48 , m_keyframes(renderer, animation->name())
49 , m_index(index) 49 , m_index(index)
50 , m_startEventDispatched(false) 50 , m_startEventDispatched(false)
51 , m_unanimatedStyle(unanimatedStyle) 51 , m_unanimatedStyle(unanimatedStyle)
52 { 52 {
53 // Get the keyframe RenderStyles 53 // Get the keyframe RenderStyles
54 if (m_object && m_object->styledGeneratingNode() && m_object->styledGenerati ngNode()->isElementNode()) 54 if (m_object && m_object->node() && m_object->node()->isElementNode())
55 m_object->document()->styleResolver()->keyframeStylesForAnimation(static _cast<Element*>(m_object->styledGeneratingNode()), unanimatedStyle, m_keyframes) ; 55 m_object->document()->styleResolver()->keyframeStylesForAnimation(static _cast<Element*>(m_object->node()), unanimatedStyle, m_keyframes);
56 56
57 // Update the m_transformFunctionListValid flag based on whether the functio n lists in the keyframes match. 57 // Update the m_transformFunctionListValid flag based on whether the functio n lists in the keyframes match.
58 validateTransformFunctionList(); 58 validateTransformFunctionList();
59 #if ENABLE(CSS_FILTERS) 59 #if ENABLE(CSS_FILTERS)
60 checkForMatchingFilterFunctionLists(); 60 checkForMatchingFilterFunctionLists();
61 #endif 61 #endif
62 } 62 }
63 63
64 KeyframeAnimation::~KeyframeAnimation() 64 KeyframeAnimation::~KeyframeAnimation()
65 { 65 {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 return; 248 return;
249 249
250 #if USE(ACCELERATED_COMPOSITING) 250 #if USE(ACCELERATED_COMPOSITING)
251 if (m_object->isComposited()) 251 if (m_object->isComposited())
252 toRenderBoxModelObject(m_object)->animationPaused(timeOffset, m_keyframe s.animationName()); 252 toRenderBoxModelObject(m_object)->animationPaused(timeOffset, m_keyframe s.animationName());
253 #else 253 #else
254 UNUSED_PARAM(timeOffset); 254 UNUSED_PARAM(timeOffset);
255 #endif 255 #endif
256 // Restore the original (unanimated) style 256 // Restore the original (unanimated) style
257 if (!paused()) 257 if (!paused())
258 setNeedsStyleRecalc(m_object->styledGeneratingNode()); 258 setNeedsStyleRecalc(m_object->node());
259 } 259 }
260 260
261 void KeyframeAnimation::endAnimation() 261 void KeyframeAnimation::endAnimation()
262 { 262 {
263 if (!m_object) 263 if (!m_object)
264 return; 264 return;
265 265
266 #if USE(ACCELERATED_COMPOSITING) 266 #if USE(ACCELERATED_COMPOSITING)
267 if (m_object->isComposited()) 267 if (m_object->isComposited())
268 toRenderBoxModelObject(m_object)->animationFinished(m_keyframes.animatio nName()); 268 toRenderBoxModelObject(m_object)->animationFinished(m_keyframes.animatio nName());
269 #endif 269 #endif
270 // Restore the original (unanimated) style 270 // Restore the original (unanimated) style
271 if (!paused()) 271 if (!paused())
272 setNeedsStyleRecalc(m_object->styledGeneratingNode()); 272 setNeedsStyleRecalc(m_object->node());
273 } 273 }
274 274
275 bool KeyframeAnimation::shouldSendEventForListener(Document::ListenerType listen erType) const 275 bool KeyframeAnimation::shouldSendEventForListener(Document::ListenerType listen erType) const
276 { 276 {
277 return m_object->document()->hasListenerType(listenerType); 277 return m_object->document()->hasListenerType(listenerType);
278 } 278 }
279 279
280 void KeyframeAnimation::onAnimationStart(double elapsedTime) 280 void KeyframeAnimation::onAnimationStart(double elapsedTime)
281 { 281 {
282 sendAnimationEvent(eventNames().webkitAnimationStartEvent, elapsedTime); 282 sendAnimationEvent(eventNames().webkitAnimationStartEvent, elapsedTime);
(...skipping 24 matching lines...) Expand all
307 ASSERT(eventType == eventNames().webkitAnimationStartEvent); 307 ASSERT(eventType == eventNames().webkitAnimationStartEvent);
308 if (m_startEventDispatched) 308 if (m_startEventDispatched)
309 return false; 309 return false;
310 m_startEventDispatched = true; 310 m_startEventDispatched = true;
311 listenerType = Document::ANIMATIONSTART_LISTENER; 311 listenerType = Document::ANIMATIONSTART_LISTENER;
312 } 312 }
313 313
314 if (shouldSendEventForListener(listenerType)) { 314 if (shouldSendEventForListener(listenerType)) {
315 // Dispatch the event 315 // Dispatch the event
316 RefPtr<Element> element; 316 RefPtr<Element> element;
317 if (m_object->styledGeneratingNode() && m_object->styledGeneratingNode() ->isElementNode()) 317 if (m_object->node() && m_object->node()->isElementNode())
318 element = static_cast<Element*>(m_object->styledGeneratingNode()); 318 element = static_cast<Element*>(m_object->node());
319 319
320 ASSERT(!element || (element->document() && !element->document()->inPageC ache())); 320 ASSERT(!element || (element->document() && !element->document()->inPageC ache()));
321 if (!element) 321 if (!element)
322 return false; 322 return false;
323 323
324 // Schedule event handling 324 // Schedule event handling
325 m_compAnim->animationController()->addEventToDispatch(element, eventType , m_keyframes.animationName(), elapsedTime); 325 m_compAnim->animationController()->addEventToDispatch(element, eventType , m_keyframes.animationName(), elapsedTime);
326 326
327 // Restore the original (unanimated) style 327 // Restore the original (unanimated) style
328 if (eventType == eventNames().webkitAnimationEndEvent && element->render er()) 328 if (eventType == eventNames().webkitAnimationEndEvent && element->render er())
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 458
459 if (acceleratedPropertiesOnly) { 459 if (acceleratedPropertiesOnly) {
460 bool isLooping; 460 bool isLooping;
461 getTimeToNextEvent(t, isLooping); 461 getTimeToNextEvent(t, isLooping);
462 } 462 }
463 #endif 463 #endif
464 return t; 464 return t;
465 } 465 }
466 466
467 } // namespace WebCore 467 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/page/animation/ImplicitAnimation.cpp ('k') | Source/WebCore/rendering/RenderBlock.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698