OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "core/inspector/InspectorAnimationAgent.h" | 7 #include "core/inspector/InspectorAnimationAgent.h" |
8 | 8 |
9 #include "core/animation/Animation.h" | 9 #include "core/animation/Animation.h" |
10 #include "core/animation/AnimationEffect.h" | 10 #include "core/animation/AnimationEffect.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 namespace AnimationAgentState { | 29 namespace AnimationAgentState { |
30 static const char animationAgentEnabled[] = "animationAgentEnabled"; | 30 static const char animationAgentEnabled[] = "animationAgentEnabled"; |
31 } | 31 } |
32 | 32 |
33 namespace blink { | 33 namespace blink { |
34 | 34 |
35 InspectorAnimationAgent::InspectorAnimationAgent(InspectorPageAgent* pageAgent,
InspectorDOMAgent* domAgent) | 35 InspectorAnimationAgent::InspectorAnimationAgent(InspectorPageAgent* pageAgent,
InspectorDOMAgent* domAgent) |
36 : InspectorBaseAgent<InspectorAnimationAgent, InspectorFrontend::Animation>(
"Animation") | 36 : InspectorBaseAgent<InspectorAnimationAgent, InspectorFrontend::Animation>(
"Animation") |
37 , m_pageAgent(pageAgent) | 37 , m_pageAgent(pageAgent) |
38 , m_domAgent(domAgent) | 38 , m_domAgent(domAgent) |
| 39 , m_latestStartTime(std::numeric_limits<double>::min()) |
39 { | 40 { |
40 } | 41 } |
41 | 42 |
42 void InspectorAnimationAgent::restore() | 43 void InspectorAnimationAgent::restore() |
43 { | 44 { |
44 if (m_state->getBoolean(AnimationAgentState::animationAgentEnabled)) { | 45 if (m_state->getBoolean(AnimationAgentState::animationAgentEnabled)) { |
45 ErrorString error; | 46 ErrorString error; |
46 enable(&error); | 47 enable(&error); |
47 } | 48 } |
48 } | 49 } |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 timing->setDelay(delay); | 295 timing->setDelay(delay); |
295 } | 296 } |
296 } | 297 } |
297 | 298 |
298 void InspectorAnimationAgent::didCreateAnimation(Animation* player) | 299 void InspectorAnimationAgent::didCreateAnimation(Animation* player) |
299 { | 300 { |
300 const String& playerId = String::number(player->sequenceNumber()); | 301 const String& playerId = String::number(player->sequenceNumber()); |
301 if (m_idToAnimation.get(playerId)) | 302 if (m_idToAnimation.get(playerId)) |
302 return; | 303 return; |
303 | 304 |
304 // Check threshold | 305 double threshold = 1000; |
305 double latestStartTime = 0; | 306 bool reset = normalizedStartTime(*player) - threshold > m_latestStartTime; |
306 for (const auto& p : m_idToAnimation.values()) | 307 m_latestStartTime = normalizedStartTime(*player); |
307 latestStartTime = max(latestStartTime, normalizedStartTime(*p)); | 308 if (reset) { |
308 | |
309 bool reset = false; | |
310 const double threshold = 1000; | |
311 if (normalizedStartTime(*player) - latestStartTime > threshold) { | |
312 reset = true; | |
313 m_idToAnimation.clear(); | 309 m_idToAnimation.clear(); |
314 m_idToAnimationType.clear(); | 310 m_idToAnimationType.clear(); |
315 } | 311 } |
316 | 312 |
317 frontend()->animationPlayerCreated(buildObjectForAnimationPlayer(*player), r
eset); | 313 frontend()->animationPlayerCreated(buildObjectForAnimationPlayer(*player), r
eset); |
318 } | 314 } |
319 | 315 |
320 void InspectorAnimationAgent::didCancelAnimation(Animation* player) | 316 void InspectorAnimationAgent::didCancelAnimation(Animation* player) |
321 { | 317 { |
322 const String& playerId = String::number(player->sequenceNumber()); | 318 const String& playerId = String::number(player->sequenceNumber()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 #if ENABLE(OILPAN) | 356 #if ENABLE(OILPAN) |
361 visitor->trace(m_pageAgent); | 357 visitor->trace(m_pageAgent); |
362 visitor->trace(m_domAgent); | 358 visitor->trace(m_domAgent); |
363 visitor->trace(m_idToAnimation); | 359 visitor->trace(m_idToAnimation); |
364 visitor->trace(m_idToAnimationType); | 360 visitor->trace(m_idToAnimationType); |
365 #endif | 361 #endif |
366 InspectorBaseAgent::trace(visitor); | 362 InspectorBaseAgent::trace(visitor); |
367 } | 363 } |
368 | 364 |
369 } | 365 } |
OLD | NEW |