| 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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 #endif | 277 #endif |
| 278 | 278 |
| 279 const CSSAnimationData* animationData = style.animations(); | 279 const CSSAnimationData* animationData = style.animations(); |
| 280 const CSSAnimations* cssAnimations = elementAnimations ? &elementAnimations-
>cssAnimations() : nullptr; | 280 const CSSAnimations* cssAnimations = elementAnimations ? &elementAnimations-
>cssAnimations() : nullptr; |
| 281 const Element* elementForScoping = animatingElement ? animatingElement : &el
ement; | 281 const Element* elementForScoping = animatingElement ? animatingElement : &el
ement; |
| 282 | 282 |
| 283 Vector<bool> cancelRunningAnimationFlags(cssAnimations ? cssAnimations->m_ru
nningAnimations.size() : 0); | 283 Vector<bool> cancelRunningAnimationFlags(cssAnimations ? cssAnimations->m_ru
nningAnimations.size() : 0); |
| 284 for (bool& flag : cancelRunningAnimationFlags) | 284 for (bool& flag : cancelRunningAnimationFlags) |
| 285 flag = true; | 285 flag = true; |
| 286 | 286 |
| 287 if (animationData && style.display() != NONE) { | 287 if (animationData && style.display() != EDisplay::None) { |
| 288 const Vector<AtomicString>& nameList = animationData->nameList(); | 288 const Vector<AtomicString>& nameList = animationData->nameList(); |
| 289 for (size_t i = 0; i < nameList.size(); ++i) { | 289 for (size_t i = 0; i < nameList.size(); ++i) { |
| 290 AtomicString name = nameList[i]; | 290 AtomicString name = nameList[i]; |
| 291 if (name == CSSAnimationData::initialName()) | 291 if (name == CSSAnimationData::initialName()) |
| 292 continue; | 292 continue; |
| 293 | 293 |
| 294 // Find n where this is the nth occurence of this animation name. | 294 // Find n where this is the nth occurence of this animation name. |
| 295 size_t nameIndex = 0; | 295 size_t nameIndex = 0; |
| 296 for (size_t j = 0; j < i; j++) { | 296 for (size_t j = 0; j < i; j++) { |
| 297 if (nameList[j] == name) | 297 if (nameList[j] == name) |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 // 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. | 631 // 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. |
| 632 const bool animationStyleRecalc = false; | 632 const bool animationStyleRecalc = false; |
| 633 #else | 633 #else |
| 634 // In release builds we avoid the cost of checking for new and interrupted t
ransitions if the style recalc is due to animation. | 634 // In release builds we avoid the cost of checking for new and interrupted t
ransitions if the style recalc is due to animation. |
| 635 const bool animationStyleRecalc = elementAnimations && elementAnimations->is
AnimationStyleChange(); | 635 const bool animationStyleRecalc = elementAnimations && elementAnimations->is
AnimationStyleChange(); |
| 636 #endif | 636 #endif |
| 637 | 637 |
| 638 std::bitset<numCSSProperties> listedProperties; | 638 std::bitset<numCSSProperties> listedProperties; |
| 639 bool anyTransitionHadTransitionAll = false; | 639 bool anyTransitionHadTransitionAll = false; |
| 640 const LayoutObject* layoutObject = animatingElement->layoutObject(); | 640 const LayoutObject* layoutObject = animatingElement->layoutObject(); |
| 641 if (!animationStyleRecalc && style.display() != NONE && layoutObject && layo
utObject->style() && transitionData) { | 641 if (!animationStyleRecalc && style.display() != EDisplay::None && layoutObje
ct && layoutObject->style() && transitionData) { |
| 642 const ComputedStyle& oldStyle = *layoutObject->style(); | 642 const ComputedStyle& oldStyle = *layoutObject->style(); |
| 643 | 643 |
| 644 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { | 644 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { |
| 645 const CSSTransitionData::TransitionProperty& transitionProperty = tr
ansitionData->propertyList()[i]; | 645 const CSSTransitionData::TransitionProperty& transitionProperty = tr
ansitionData->propertyList()[i]; |
| 646 if (transitionProperty.propertyType != CSSTransitionData::Transition
KnownProperty) | 646 if (transitionProperty.propertyType != CSSTransitionData::Transition
KnownProperty) |
| 647 continue; | 647 continue; |
| 648 | 648 |
| 649 CSSPropertyID property = resolveCSSPropertyID(transitionProperty.unr
esolvedProperty); | 649 CSSPropertyID property = resolveCSSPropertyID(transitionProperty.unr
esolvedProperty); |
| 650 bool animateAll = property == CSSPropertyAll; | 650 bool animateAll = property == CSSPropertyAll; |
| 651 if (animateAll) | 651 if (animateAll) |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 } | 897 } |
| 898 | 898 |
| 899 DEFINE_TRACE(CSSAnimations) | 899 DEFINE_TRACE(CSSAnimations) |
| 900 { | 900 { |
| 901 visitor->trace(m_transitions); | 901 visitor->trace(m_transitions); |
| 902 visitor->trace(m_pendingUpdate); | 902 visitor->trace(m_pendingUpdate); |
| 903 visitor->trace(m_runningAnimations); | 903 visitor->trace(m_runningAnimations); |
| 904 } | 904 } |
| 905 | 905 |
| 906 } // namespace blink | 906 } // namespace blink |
| OLD | NEW |