Chromium Code Reviews| 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 |