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

Side by Side Diff: third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp

Issue 1471193008: Devtools Animations: Maintain playback rate on navigation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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, 1);
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*)
(...skipping 10 matching lines...) Expand all
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, 1);
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698