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

Side by Side Diff: third_party/WebKit/Source/core/animation/CompositorPendingAnimations.cpp

Issue 1425143006: Revert of Web Animations: Use a single animation clock (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 } 73 }
74 74
75 for (auto& animation : animations) { 75 for (auto& animation : animations) {
76 bool hadCompositorAnimation = animation->hasActiveAnimationsOnCompositor (); 76 bool hadCompositorAnimation = animation->hasActiveAnimationsOnCompositor ();
77 // Animations with a start time do not participate in compositor start-t ime grouping. 77 // Animations with a start time do not participate in compositor start-t ime grouping.
78 if (animation->preCommit(animation->hasStartTime() ? 1 : compositorGroup , startOnCompositor)) { 78 if (animation->preCommit(animation->hasStartTime() ? 1 : compositorGroup , startOnCompositor)) {
79 if (animation->hasActiveAnimationsOnCompositor() && !hadCompositorAn imation) { 79 if (animation->hasActiveAnimationsOnCompositor() && !hadCompositorAn imation) {
80 startedSynchronizedOnCompositor = true; 80 startedSynchronizedOnCompositor = true;
81 } 81 }
82 82
83 if (animation->playing() && !animation->hasStartTime() && animation- >timeline() && animation->timeline()->isActive()) { 83 if (animation->playing() && !animation->hasStartTime()) {
84 waitingForStartTime.append(animation.get()); 84 waitingForStartTime.append(animation.get());
85 } 85 }
86 } else { 86 } else {
87 deferred.append(animation); 87 deferred.append(animation);
88 } 88 }
89 } 89 }
90 90
91 // If any synchronized animations were started on the compositor, all 91 // If any synchronized animations were started on the compositor, all
92 // remaning synchronized animations need to wait for the synchronized 92 // remaning synchronized animations need to wait for the synchronized
93 // start time. Otherwise they may start immediately. 93 // start time. Otherwise they may start immediately.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 return false; 135 return false;
136 } 136 }
137 137
138 void CompositorPendingAnimations::notifyCompositorAnimationStarted(double monoto nicAnimationStartTime, int compositorGroup) 138 void CompositorPendingAnimations::notifyCompositorAnimationStarted(double monoto nicAnimationStartTime, int compositorGroup)
139 { 139 {
140 TRACE_EVENT0("blink", "CompositorPendingAnimations::notifyCompositorAnimatio nStarted"); 140 TRACE_EVENT0("blink", "CompositorPendingAnimations::notifyCompositorAnimatio nStarted");
141 HeapVector<Member<Animation>> animations; 141 HeapVector<Member<Animation>> animations;
142 animations.swap(m_waitingForCompositorAnimationStart); 142 animations.swap(m_waitingForCompositorAnimationStart);
143 143
144 for (auto animation : animations) { 144 for (auto animation : animations) {
145 if (animation->hasStartTime() || animation->playStateInternal() != Anima tion::Pending || !animation->timeline() || !animation->timeline()->isActive()) { 145 if (animation->hasStartTime() || animation->playStateInternal() != Anima tion::Pending) {
146 // Already started or no longer relevant. 146 // Already started or no longer relevant.
147 continue; 147 continue;
148 } 148 }
149 if (compositorGroup && animation->compositorGroup() != compositorGroup) { 149 if (compositorGroup && animation->compositorGroup() != compositorGroup) {
150 // Still waiting. 150 // Still waiting.
151 m_waitingForCompositorAnimationStart.append(animation); 151 m_waitingForCompositorAnimationStart.append(animation);
152 continue; 152 continue;
153 } 153 }
154 animation->notifyCompositorStartTime(monotonicAnimationStartTime - anima tion->timeline()->zeroTime()); 154 animation->notifyCompositorStartTime(monotonicAnimationStartTime - anima tion->timeline()->zeroTime());
155 } 155 }
156 156
157 } 157 }
158 158
159 DEFINE_TRACE(CompositorPendingAnimations) 159 DEFINE_TRACE(CompositorPendingAnimations)
160 { 160 {
161 visitor->trace(m_pending); 161 visitor->trace(m_pending);
162 visitor->trace(m_waitingForCompositorAnimationStart); 162 visitor->trace(m_waitingForCompositorAnimationStart);
163 } 163 }
164 164
165 } // namespace 165 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698