| 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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 } | 299 } |
| 300 | 300 |
| 301 const bool isPaused = CSSTimingData::getRepeated(animationData->play
StateList(), i) == AnimPlayStatePaused; | 301 const bool isPaused = CSSTimingData::getRepeated(animationData->play
StateList(), i) == AnimPlayStatePaused; |
| 302 | 302 |
| 303 Timing timing = animationData->convertToTiming(i); | 303 Timing timing = animationData->convertToTiming(i); |
| 304 Timing specifiedTiming = timing; | 304 Timing specifiedTiming = timing; |
| 305 RefPtr<TimingFunction> keyframeTimingFunction = timing.timingFunctio
n; | 305 RefPtr<TimingFunction> keyframeTimingFunction = timing.timingFunctio
n; |
| 306 timing.timingFunction = Timing::defaults().timingFunction; | 306 timing.timingFunction = Timing::defaults().timingFunction; |
| 307 | 307 |
| 308 StyleRuleKeyframes* keyframesRule = resolver->findKeyframesRule(elem
entForScoping, name); | 308 StyleRuleKeyframes* keyframesRule = resolver->findKeyframesRule(elem
entForScoping, name); |
| 309 if (!keyframesRule) { | 309 if (!keyframesRule) |
| 310 element.document().styleEngine().setHasUnresolvedKeyframesRule()
; | |
| 311 continue; // Cancel the animation if there's no style rule for i
t. | 310 continue; // Cancel the animation if there's no style rule for i
t. |
| 312 } | |
| 313 | 311 |
| 314 const RunningAnimation* existingAnimation = nullptr; | 312 const RunningAnimation* existingAnimation = nullptr; |
| 315 size_t existingAnimationIndex = 0; | 313 size_t existingAnimationIndex = 0; |
| 316 | 314 |
| 317 if (cssAnimations) { | 315 if (cssAnimations) { |
| 318 for (size_t i = 0; i < cssAnimations->m_runningAnimations.size()
; i++) { | 316 for (size_t i = 0; i < cssAnimations->m_runningAnimations.size()
; i++) { |
| 319 const RunningAnimation& runningAnimation = *cssAnimations->m
_runningAnimations[i]; | 317 const RunningAnimation& runningAnimation = *cssAnimations->m
_runningAnimations[i]; |
| 320 if (runningAnimation.name == name && runningAnimation.nameIn
dex == nameIndex) { | 318 if (runningAnimation.name == name && runningAnimation.nameIn
dex == nameIndex) { |
| 321 existingAnimation = &runningAnimation; | 319 existingAnimation = &runningAnimation; |
| 322 existingAnimationIndex = i; | 320 existingAnimationIndex = i; |
| (...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 889 case CSSPropertyTransitionDelay: | 887 case CSSPropertyTransitionDelay: |
| 890 case CSSPropertyTransitionDuration: | 888 case CSSPropertyTransitionDuration: |
| 891 case CSSPropertyTransitionProperty: | 889 case CSSPropertyTransitionProperty: |
| 892 case CSSPropertyTransitionTimingFunction: | 890 case CSSPropertyTransitionTimingFunction: |
| 893 return false; | 891 return false; |
| 894 default: | 892 default: |
| 895 return true; | 893 return true; |
| 896 } | 894 } |
| 897 } | 895 } |
| 898 | 896 |
| 897 bool CSSAnimations::isAffectedByKeyframesFromScope(const Element& element, const
TreeScope& treeScope) |
| 898 { |
| 899 // Animated elements are affected by @keyframes rules from the same scope |
| 900 // and from their shadow sub-trees if they are shadow hosts. |
| 901 if (element.treeScope() == treeScope) |
| 902 return true; |
| 903 if (!isShadowHost(element)) |
| 904 return false; |
| 905 if (treeScope.rootNode() == treeScope.document()) |
| 906 return false; |
| 907 return toShadowRoot(treeScope.rootNode()).host() == element; |
| 908 } |
| 909 |
| 899 DEFINE_TRACE(CSSAnimations) | 910 DEFINE_TRACE(CSSAnimations) |
| 900 { | 911 { |
| 901 visitor->trace(m_transitions); | 912 visitor->trace(m_transitions); |
| 902 visitor->trace(m_pendingUpdate); | 913 visitor->trace(m_pendingUpdate); |
| 903 visitor->trace(m_runningAnimations); | 914 visitor->trace(m_runningAnimations); |
| 904 } | 915 } |
| 905 | 916 |
| 906 } // namespace blink | 917 } // namespace blink |
| OLD | NEW |