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

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationTimeline.h

Issue 2105743002: Optimize style recalc when adding @keyframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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) 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 void setCurrentTime(double); 84 void setCurrentTime(double);
85 void setCurrentTimeInternal(double); 85 void setCurrentTimeInternal(double);
86 double effectiveTime(); 86 double effectiveTime();
87 void pauseAnimationsForTesting(double); 87 void pauseAnimationsForTesting(double);
88 88
89 void setAllCompositorPending(bool sourceChanged = false); 89 void setAllCompositorPending(bool sourceChanged = false);
90 void setOutdatedAnimation(Animation*); 90 void setOutdatedAnimation(Animation*);
91 void clearOutdatedAnimation(Animation*); 91 void clearOutdatedAnimation(Animation*);
92 bool hasOutdatedAnimation() const { return m_outdatedAnimationCount > 0; } 92 bool hasOutdatedAnimation() const { return m_outdatedAnimationCount > 0; }
93 bool needsAnimationTimingUpdate(); 93 bool needsAnimationTimingUpdate();
94 void setHasUnresolvedKeyframesRule() { m_hasUnresolvedKeyframesRule = true; }
95 void keyframesRulesAdded();
94 96
95 void setPlaybackRate(double); 97 void setPlaybackRate(double);
96 double playbackRate() const; 98 double playbackRate() const;
97 99
98 CompositorAnimationTimeline* compositorTimeline() const { return m_composito rTimeline.get(); } 100 CompositorAnimationTimeline* compositorTimeline() const { return m_composito rTimeline.get(); }
99 101
100 Document* document() { return m_document.get(); } 102 Document* document() { return m_document.get(); }
101 void wake(); 103 void wake();
102 void resetForTesting(); 104 void resetForTesting();
103 105
104 DECLARE_TRACE(); 106 DECLARE_TRACE();
105 107
106 protected: 108 protected:
107 AnimationTimeline(Document*, PlatformTiming*); 109 AnimationTimeline(Document*, PlatformTiming*);
108 110
109 private: 111 private:
110 Member<Document> m_document; 112 Member<Document> m_document;
111 double m_zeroTime; 113 double m_zeroTime;
112 bool m_zeroTimeInitialized; 114 bool m_zeroTimeInitialized;
115 bool m_hasUnresolvedKeyframesRule;
alancutter (OOO until 2018) 2016/06/29 03:41:32 Could this live on Document instead? I don't think
alancutter (OOO until 2018) 2016/06/29 08:10:21 One option to keep it scoped to animations is to m
113 unsigned m_outdatedAnimationCount; 116 unsigned m_outdatedAnimationCount;
114 // Animations which will be updated on the next frame 117 // Animations which will be updated on the next frame
115 // i.e. current, in effect, or had timing changed 118 // i.e. current, in effect, or had timing changed
116 HeapHashSet<Member<Animation>> m_animationsNeedingUpdate; 119 HeapHashSet<Member<Animation>> m_animationsNeedingUpdate;
117 HeapHashSet<WeakMember<Animation>> m_animations; 120 HeapHashSet<WeakMember<Animation>> m_animations;
118 121
119 double m_playbackRate; 122 double m_playbackRate;
120 123
121 friend class SMILTimeContainer; 124 friend class SMILTimeContainer;
122 static const double s_minimumDelay; 125 static const double s_minimumDelay;
(...skipping 23 matching lines...) Expand all
146 Member<AnimationTimeline> m_timeline; 149 Member<AnimationTimeline> m_timeline;
147 Timer<AnimationTimelineTiming> m_timer; 150 Timer<AnimationTimelineTiming> m_timer;
148 }; 151 };
149 152
150 friend class AnimationAnimationTimelineTest; 153 friend class AnimationAnimationTimelineTest;
151 }; 154 };
152 155
153 } // namespace blink 156 } // namespace blink
154 157
155 #endif 158 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698