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

Side by Side Diff: Source/core/animation/ActiveAnimations.h

Issue 635203003: Skip rule matching during animations. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: ASSERT that the cached animation base RenderStyle is correct Created 6 years, 2 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) 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 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef ActiveAnimations_h 31 #ifndef ActiveAnimations_h
32 #define ActiveAnimations_h 32 #define ActiveAnimations_h
33 33
34 #include "core/animation/AnimationStack.h" 34 #include "core/animation/AnimationStack.h"
35 #include "core/animation/css/CSSAnimations.h" 35 #include "core/animation/css/CSSAnimations.h"
36 #include "core/rendering/style/RenderStyle.h"
36 #include "wtf/HashCountedSet.h" 37 #include "wtf/HashCountedSet.h"
37 #include "wtf/HashMap.h" 38 #include "wtf/HashMap.h"
38 #include "wtf/RefPtr.h" 39 #include "wtf/RefPtr.h"
39 #include "wtf/Vector.h" 40 #include "wtf/Vector.h"
40 41
41 namespace blink { 42 namespace blink {
42 43
43 class CSSAnimations; 44 class CSSAnimations;
44 class RenderObject; 45 class RenderObject;
45 class Element; 46 class Element;
(...skipping 22 matching lines...) Expand all
68 69
69 // AnimationPlayers which have animations targeting this element. 70 // AnimationPlayers which have animations targeting this element.
70 AnimationPlayerCountedSet& players() { return m_players; } 71 AnimationPlayerCountedSet& players() { return m_players; }
71 72
72 bool isEmpty() const { return m_defaultStack.isEmpty() && m_cssAnimations.is Empty() && m_players.isEmpty(); } 73 bool isEmpty() const { return m_defaultStack.isEmpty() && m_cssAnimations.is Empty() && m_players.isEmpty(); }
73 74
74 void cancelAnimationOnCompositor(); 75 void cancelAnimationOnCompositor();
75 76
76 void updateAnimationFlags(RenderStyle&); 77 void updateAnimationFlags(RenderStyle&);
77 void setAnimationStyleChange(bool animationStyleChange) { m_animationStyleCh ange = animationStyleChange; } 78 void setAnimationStyleChange(bool animationStyleChange) { m_animationStyleCh ange = animationStyleChange; }
79 bool isAnimationStyleChange() const { return m_animationStyleChange; }
80
81 const RenderStyle* baseRenderStyle() const { return m_baseRenderStyle.get(); }
82 void setBaseRenderStyle(PassRefPtr<RenderStyle> renderStyle)
esprehn 2014/10/13 18:19:33 Can we make this out of line instead? Then we don'
rune 2014/10/13 21:31:48 Done.
83 {
84 #if ENABLE(ASSERT)
85 if (m_baseRenderStyle && renderStyle)
86 ASSERT(*m_baseRenderStyle == *renderStyle);
87 #endif
88 m_baseRenderStyle = renderStyle;
89 }
78 90
79 #if !ENABLE(OILPAN) 91 #if !ENABLE(OILPAN)
80 void addAnimation(Animation* animation) { m_animations.append(animation); } 92 void addAnimation(Animation* animation) { m_animations.append(animation); }
81 void notifyAnimationDestroyed(Animation* animation) { m_animations.remove(m_ animations.find(animation)); } 93 void notifyAnimationDestroyed(Animation* animation) { m_animations.remove(m_ animations.find(animation)); }
82 #endif 94 #endif
83 95
84 void trace(Visitor*); 96 void trace(Visitor*);
85 97
86 private: 98 private:
87 bool isAnimationStyleChange() const { return m_animationStyleChange; }
88
89 AnimationStack m_defaultStack; 99 AnimationStack m_defaultStack;
90 CSSAnimations m_cssAnimations; 100 CSSAnimations m_cssAnimations;
91 AnimationPlayerCountedSet m_players; 101 AnimationPlayerCountedSet m_players;
92 bool m_animationStyleChange; 102 bool m_animationStyleChange;
103 RefPtr<RenderStyle> m_baseRenderStyle;
93 104
94 #if !ENABLE(OILPAN) 105 #if !ENABLE(OILPAN)
95 // FIXME: Oilpan: This is to avoid a reference cycle that keeps Elements ali ve 106 // FIXME: Oilpan: This is to avoid a reference cycle that keeps Elements ali ve
96 // and won't be needed once the Node hierarchy becomes traceable. 107 // and won't be needed once the Node hierarchy becomes traceable.
97 Vector<Animation*> m_animations; 108 Vector<Animation*> m_animations;
98 #endif 109 #endif
99 110
100 // CSSAnimations checks if a style change is due to animation. 111 // CSSAnimations checks if a style change is due to animation.
101 friend class CSSAnimations; 112 friend class CSSAnimations;
102 }; 113 };
103 114
104 } // namespace blink 115 } // namespace blink
105 116
106 #endif 117 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/css/resolver/StyleResolver.cpp » ('j') | Source/core/css/resolver/StyleResolver.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698