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 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 calculateAnimationActiveInterpolations(update.get(), element, parentElement.
document().timeline().currentTimeInternal()); | 228 calculateAnimationActiveInterpolations(update.get(), element, parentElement.
document().timeline().currentTimeInternal()); |
229 calculateTransitionUpdate(update.get(), element, style); | 229 calculateTransitionUpdate(update.get(), element, style); |
230 calculateTransitionActiveInterpolations(update.get(), element, parentElement
.document().timeline().currentTimeInternal()); | 230 calculateTransitionActiveInterpolations(update.get(), element, parentElement
.document().timeline().currentTimeInternal()); |
231 return update->isEmpty() ? nullptr : update.release(); | 231 return update->isEmpty() ? nullptr : update.release(); |
232 } | 232 } |
233 | 233 |
234 void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, Element
* element, const Element& parentElement, const RenderStyle& style, RenderStyle*
parentStyle, StyleResolver* resolver) | 234 void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, Element
* element, const Element& parentElement, const RenderStyle& style, RenderStyle*
parentStyle, StyleResolver* resolver) |
235 { | 235 { |
236 const ActiveAnimations* activeAnimations = element ? element->activeAnimatio
ns() : 0; | 236 const ActiveAnimations* activeAnimations = element ? element->activeAnimatio
ns() : 0; |
237 | 237 |
238 #if ASSERT_DISABLED | 238 #if !ASSERT_ENABLED |
239 // If we're in an animation style change, no animations can have started, be
en cancelled or changed play state. | 239 // If we're in an animation style change, no animations can have started, be
en cancelled or changed play state. |
240 // When ASSERT is enabled, we verify this optimization. | 240 // When ASSERT is enabled, we verify this optimization. |
241 if (activeAnimations && activeAnimations->isAnimationStyleChange()) | 241 if (activeAnimations && activeAnimations->isAnimationStyleChange()) |
242 return; | 242 return; |
243 #endif | 243 #endif |
244 | 244 |
245 const CSSAnimationData* animationData = style.animations(); | 245 const CSSAnimationData* animationData = style.animations(); |
246 const CSSAnimations* cssAnimations = activeAnimations ? &activeAnimations->c
ssAnimations() : 0; | 246 const CSSAnimations* cssAnimations = activeAnimations ? &activeAnimations->c
ssAnimations() : 0; |
247 | 247 |
248 HashSet<AtomicString> inactive; | 248 HashSet<AtomicString> inactive; |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 | 452 |
453 void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const
Element* element, const RenderStyle& style) | 453 void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const
Element* element, const RenderStyle& style) |
454 { | 454 { |
455 if (!element) | 455 if (!element) |
456 return; | 456 return; |
457 | 457 |
458 ActiveAnimations* activeAnimations = element->activeAnimations(); | 458 ActiveAnimations* activeAnimations = element->activeAnimations(); |
459 const TransitionMap* activeTransitions = activeAnimations ? &activeAnimation
s->cssAnimations().m_transitions : 0; | 459 const TransitionMap* activeTransitions = activeAnimations ? &activeAnimation
s->cssAnimations().m_transitions : 0; |
460 const CSSTransitionData* transitionData = style.transitions(); | 460 const CSSTransitionData* transitionData = style.transitions(); |
461 | 461 |
462 #if ASSERT_DISABLED | 462 #if ASSERT_ENABLED |
| 463 // In debug builds we verify that it would have been safe to avoid populatin
g and testing listedProperties if the style recalc is due to animation. |
| 464 const bool animationStyleRecalc = false; |
| 465 #else |
463 // In release builds we avoid the cost of checking for new and interrupted t
ransitions if the style recalc is due to animation. | 466 // In release builds we avoid the cost of checking for new and interrupted t
ransitions if the style recalc is due to animation. |
464 const bool animationStyleRecalc = activeAnimations && activeAnimations->isAn
imationStyleChange(); | 467 const bool animationStyleRecalc = activeAnimations && activeAnimations->isAn
imationStyleChange(); |
465 #else | |
466 // In debug builds we verify that it would have been safe to avoid populatin
g and testing listedProperties if the style recalc is due to animation. | |
467 const bool animationStyleRecalc = false; | |
468 #endif | 468 #endif |
469 | 469 |
470 BitArray<numCSSProperties> listedProperties; | 470 BitArray<numCSSProperties> listedProperties; |
471 bool anyTransitionHadTransitionAll = false; | 471 bool anyTransitionHadTransitionAll = false; |
472 const RenderObject* renderer = element->renderer(); | 472 const RenderObject* renderer = element->renderer(); |
473 if (!animationStyleRecalc && style.display() != NONE && renderer && renderer
->style() && transitionData) { | 473 if (!animationStyleRecalc && style.display() != NONE && renderer && renderer
->style() && transitionData) { |
474 const RenderStyle& oldStyle = *renderer->style(); | 474 const RenderStyle& oldStyle = *renderer->style(); |
475 | 475 |
476 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { | 476 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { |
477 const CSSTransitionData::TransitionProperty& transitionProperty = tr
ansitionData->propertyList()[i]; | 477 const CSSTransitionData::TransitionProperty& transitionProperty = tr
ansitionData->propertyList()[i]; |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 void CSSAnimationUpdate::trace(Visitor* visitor) | 836 void CSSAnimationUpdate::trace(Visitor* visitor) |
837 { | 837 { |
838 visitor->trace(m_newTransitions); | 838 visitor->trace(m_newTransitions); |
839 visitor->trace(m_activeInterpolationsForAnimations); | 839 visitor->trace(m_activeInterpolationsForAnimations); |
840 visitor->trace(m_activeInterpolationsForTransitions); | 840 visitor->trace(m_activeInterpolationsForTransitions); |
841 visitor->trace(m_newAnimations); | 841 visitor->trace(m_newAnimations); |
842 visitor->trace(m_cancelledAnimationPlayers); | 842 visitor->trace(m_cancelledAnimationPlayers); |
843 } | 843 } |
844 | 844 |
845 } // namespace WebCore | 845 } // namespace WebCore |
OLD | NEW |