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 16 matching lines...) Expand all Loading... | |
27 #include "core/inspector/InspectorCSSAgent.h" | 27 #include "core/inspector/InspectorCSSAgent.h" |
28 #include "core/inspector/InspectorDOMAgent.h" | 28 #include "core/inspector/InspectorDOMAgent.h" |
29 #include "core/inspector/InspectorState.h" | 29 #include "core/inspector/InspectorState.h" |
30 #include "core/inspector/InspectorStyleSheet.h" | 30 #include "core/inspector/InspectorStyleSheet.h" |
31 #include "platform/Decimal.h" | 31 #include "platform/Decimal.h" |
32 #include "platform/animation/TimingFunction.h" | 32 #include "platform/animation/TimingFunction.h" |
33 #include "wtf/text/Base64.h" | 33 #include "wtf/text/Base64.h" |
34 | 34 |
35 namespace AnimationAgentState { | 35 namespace AnimationAgentState { |
36 static const char animationAgentEnabled[] = "animationAgentEnabled"; | 36 static const char animationAgentEnabled[] = "animationAgentEnabled"; |
37 static const char animationAgentPlaybackRate[] = "animationAgentPlaybackRate"; | |
37 } | 38 } |
38 | 39 |
39 namespace blink { | 40 namespace blink { |
40 | 41 |
41 InspectorAnimationAgent::InspectorAnimationAgent(InspectedFrames* inspectedFrame s, InspectorDOMAgent* domAgent, InspectorCSSAgent* cssAgent, InjectedScriptManag er* injectedScriptManager) | 42 InspectorAnimationAgent::InspectorAnimationAgent(InspectedFrames* inspectedFrame s, InspectorDOMAgent* domAgent, InspectorCSSAgent* cssAgent, InjectedScriptManag er* injectedScriptManager) |
42 : InspectorBaseAgent<InspectorAnimationAgent, InspectorFrontend::Animation>( "Animation") | 43 : InspectorBaseAgent<InspectorAnimationAgent, InspectorFrontend::Animation>( "Animation") |
43 , m_inspectedFrames(inspectedFrames) | 44 , m_inspectedFrames(inspectedFrames) |
44 , m_domAgent(domAgent) | 45 , m_domAgent(domAgent) |
45 , m_cssAgent(cssAgent) | 46 , m_cssAgent(cssAgent) |
46 , m_injectedScriptManager(injectedScriptManager) | 47 , m_injectedScriptManager(injectedScriptManager) |
47 , m_isCloning(false) | 48 , m_isCloning(false) |
48 { | 49 { |
49 } | 50 } |
50 | 51 |
51 void InspectorAnimationAgent::restore() | 52 void InspectorAnimationAgent::restore() |
52 { | 53 { |
53 if (m_state->getBoolean(AnimationAgentState::animationAgentEnabled)) { | 54 if (m_state->getBoolean(AnimationAgentState::animationAgentEnabled)) { |
54 ErrorString error; | 55 ErrorString error; |
55 enable(&error); | 56 enable(&error); |
57 double playbackRate = m_state->getDouble(AnimationAgentState::animationA gentPlaybackRate); | |
58 setPlaybackRate(nullptr, playbackRate); | |
56 } | 59 } |
57 } | 60 } |
58 | 61 |
59 void InspectorAnimationAgent::enable(ErrorString*) | 62 void InspectorAnimationAgent::enable(ErrorString*) |
60 { | 63 { |
61 m_state->setBoolean(AnimationAgentState::animationAgentEnabled, true); | 64 m_state->setBoolean(AnimationAgentState::animationAgentEnabled, true); |
62 m_instrumentingAgents->setInspectorAnimationAgent(this); | 65 m_instrumentingAgents->setInspectorAnimationAgent(this); |
63 } | 66 } |
64 | 67 |
65 void InspectorAnimationAgent::disable(ErrorString*) | 68 void InspectorAnimationAgent::disable(ErrorString*) |
66 { | 69 { |
67 setPlaybackRate(nullptr, 1); | 70 setPlaybackRate(nullptr, 1); |
68 for (const auto& clone : m_idToAnimationClone.values()) | 71 for (const auto& clone : m_idToAnimationClone.values()) |
69 clone->cancel(); | 72 clone->cancel(); |
70 m_state->setBoolean(AnimationAgentState::animationAgentEnabled, false); | 73 m_state->setBoolean(AnimationAgentState::animationAgentEnabled, false); |
pfeldman
2015/12/02 05:25:05
Don't land it just yet - you want to clear the sta
samli
2015/12/02 23:31:16
Already is cleared in setPlaybackRate().
| |
71 m_instrumentingAgents->setInspectorAnimationAgent(nullptr); | 74 m_instrumentingAgents->setInspectorAnimationAgent(nullptr); |
72 m_idToAnimation.clear(); | 75 m_idToAnimation.clear(); |
73 m_idToAnimationType.clear(); | 76 m_idToAnimationType.clear(); |
74 m_idToAnimationClone.clear(); | 77 m_idToAnimationClone.clear(); |
75 m_clearedAnimations.clear(); | 78 m_clearedAnimations.clear(); |
76 } | 79 } |
77 | 80 |
78 void InspectorAnimationAgent::didCommitLoadForLocalFrame(LocalFrame* frame) | 81 void InspectorAnimationAgent::didCommitLoadForLocalFrame(LocalFrame* frame) |
79 { | 82 { |
80 if (frame == m_inspectedFrames->root()) { | 83 if (frame == m_inspectedFrames->root()) { |
81 m_idToAnimation.clear(); | 84 m_idToAnimation.clear(); |
82 m_idToAnimationType.clear(); | 85 m_idToAnimationType.clear(); |
83 m_idToAnimationClone.clear(); | 86 m_idToAnimationClone.clear(); |
84 m_clearedAnimations.clear(); | 87 m_clearedAnimations.clear(); |
85 } | 88 } |
89 double playbackRate = m_state->getDouble(AnimationAgentState::animationAgent PlaybackRate); | |
90 setPlaybackRate(nullptr, playbackRate); | |
86 } | 91 } |
87 | 92 |
88 static PassRefPtr<TypeBuilder::Animation::AnimationEffect> buildObjectForAnimati onEffect(KeyframeEffect* effect, bool isTransition) | 93 static PassRefPtr<TypeBuilder::Animation::AnimationEffect> buildObjectForAnimati onEffect(KeyframeEffect* effect, bool isTransition) |
89 { | 94 { |
90 ComputedTimingProperties computedTiming; | 95 ComputedTimingProperties computedTiming; |
91 effect->computedTiming(computedTiming); | 96 effect->computedTiming(computedTiming); |
92 double delay = computedTiming.delay(); | 97 double delay = computedTiming.delay(); |
93 double duration = computedTiming.duration().getAsUnrestrictedDouble(); | 98 double duration = computedTiming.duration().getAsUnrestrictedDouble(); |
94 String easing = effect->specifiedTiming().timingFunction->toString(); | 99 String easing = effect->specifiedTiming().timingFunction->toString(); |
95 | 100 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
194 | 199 |
195 void InspectorAnimationAgent::getPlaybackRate(ErrorString*, double* playbackRate ) | 200 void InspectorAnimationAgent::getPlaybackRate(ErrorString*, double* playbackRate ) |
196 { | 201 { |
197 *playbackRate = referenceTimeline().playbackRate(); | 202 *playbackRate = referenceTimeline().playbackRate(); |
198 } | 203 } |
199 | 204 |
200 void InspectorAnimationAgent::setPlaybackRate(ErrorString*, double playbackRate) | 205 void InspectorAnimationAgent::setPlaybackRate(ErrorString*, double playbackRate) |
201 { | 206 { |
202 for (LocalFrame* frame : *m_inspectedFrames) | 207 for (LocalFrame* frame : *m_inspectedFrames) |
203 frame->document()->timeline().setPlaybackRate(playbackRate); | 208 frame->document()->timeline().setPlaybackRate(playbackRate); |
209 m_state->setDouble(AnimationAgentState::animationAgentPlaybackRate, playback Rate); | |
204 } | 210 } |
205 | 211 |
206 void InspectorAnimationAgent::getCurrentTime(ErrorString* errorString, const Str ing& id, double* currentTime) | 212 void InspectorAnimationAgent::getCurrentTime(ErrorString* errorString, const Str ing& id, double* currentTime) |
207 { | 213 { |
208 Animation* animation = assertAnimation(errorString, id); | 214 Animation* animation = assertAnimation(errorString, id); |
209 if (!animation) | 215 if (!animation) |
210 return; | 216 return; |
211 if (m_idToAnimationClone.get(id)) | 217 if (m_idToAnimationClone.get(id)) |
212 animation = m_idToAnimationClone.get(id); | 218 animation = m_idToAnimationClone.get(id); |
213 | 219 |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
507 visitor->trace(m_cssAgent); | 513 visitor->trace(m_cssAgent); |
508 visitor->trace(m_injectedScriptManager); | 514 visitor->trace(m_injectedScriptManager); |
509 visitor->trace(m_idToAnimation); | 515 visitor->trace(m_idToAnimation); |
510 visitor->trace(m_idToAnimationType); | 516 visitor->trace(m_idToAnimationType); |
511 visitor->trace(m_idToAnimationClone); | 517 visitor->trace(m_idToAnimationClone); |
512 #endif | 518 #endif |
513 InspectorBaseAgent::trace(visitor); | 519 InspectorBaseAgent::trace(visitor); |
514 } | 520 } |
515 | 521 |
516 } | 522 } |
OLD | NEW |