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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 ComputedTimingProperties computedTiming; | 74 ComputedTimingProperties computedTiming; |
75 animation->computedTiming(computedTiming); | 75 animation->computedTiming(computedTiming); |
76 double delay = computedTiming.delay(); | 76 double delay = computedTiming.delay(); |
77 double duration = computedTiming.duration().getAsUnrestrictedDouble(); | 77 double duration = computedTiming.duration().getAsUnrestrictedDouble(); |
78 String easing = animation->specifiedTiming().timingFunction->toString(); | 78 String easing = animation->specifiedTiming().timingFunction->toString(); |
79 | 79 |
80 if (isTransition) { | 80 if (isTransition) { |
81 // Obtain keyframes and convert keyframes back to delay | 81 // Obtain keyframes and convert keyframes back to delay |
82 ASSERT(animation->effect()->isKeyframeEffectModel()); | 82 ASSERT(animation->effect()->isKeyframeEffectModel()); |
83 const KeyframeEffectModelBase* effect = toKeyframeEffectModelBase(animat
ion->effect()); | 83 const KeyframeEffectModelBase* effect = toKeyframeEffectModelBase(animat
ion->effect()); |
84 WillBeHeapVector<RefPtrWillBeMember<Keyframe> > keyframes = KeyframeEffe
ctModelBase::normalizedKeyframesForInspector(effect->getFrames()); | 84 WillBeHeapVector<RefPtrWillBeMember<Keyframe>> keyframes = KeyframeEffec
tModelBase::normalizedKeyframesForInspector(effect->getFrames()); |
85 if (keyframes.size() == 3) { | 85 if (keyframes.size() == 3) { |
86 delay = keyframes.at(1)->offset() * duration; | 86 delay = keyframes.at(1)->offset() * duration; |
87 duration -= delay; | 87 duration -= delay; |
88 easing = keyframes.at(1)->easing().toString(); | 88 easing = keyframes.at(1)->easing().toString(); |
89 } else { | 89 } else { |
90 easing = keyframes.at(0)->easing().toString(); | 90 easing = keyframes.at(0)->easing().toString(); |
91 } | 91 } |
92 } | 92 } |
93 | 93 |
94 RefPtr<TypeBuilder::Animation::AnimationNode> animationObject = TypeBuilder:
:Animation::AnimationNode::create() | 94 RefPtr<TypeBuilder::Animation::AnimationNode> animationObject = TypeBuilder:
:Animation::AnimationNode::create() |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 | 129 |
130 RefPtr<TypeBuilder::Animation::KeyframeStyle> keyframeObject = TypeBuilder::
Animation::KeyframeStyle::create() | 130 RefPtr<TypeBuilder::Animation::KeyframeStyle> keyframeObject = TypeBuilder::
Animation::KeyframeStyle::create() |
131 .setOffset(offset) | 131 .setOffset(offset) |
132 .setStyle(inspectorStyle->buildObjectForStyle()) | 132 .setStyle(inspectorStyle->buildObjectForStyle()) |
133 .setEasing(keyframe->easing().toString()); | 133 .setEasing(keyframe->easing().toString()); |
134 return keyframeObject.release(); | 134 return keyframeObject.release(); |
135 } | 135 } |
136 | 136 |
137 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForStyleRule
Keyframes(const AnimationPlayer& player, const StyleRuleKeyframes* keyframesRule
) | 137 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForStyleRule
Keyframes(const AnimationPlayer& player, const StyleRuleKeyframes* keyframesRule
) |
138 { | 138 { |
139 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes
= TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); | 139 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>> keyframes
= TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); |
140 const WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> >& styleKeyfram
es = keyframesRule->keyframes(); | 140 const WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe>>& styleKeyframe
s = keyframesRule->keyframes(); |
141 for (const auto& styleKeyframe : styleKeyframes) { | 141 for (const auto& styleKeyframe : styleKeyframes) { |
142 WillBeHeapVector<RefPtrWillBeMember<Keyframe> > normalizedKeyframes = Ke
yframeEffectModelBase::normalizedKeyframesForInspector(toKeyframeEffectModelBase
(toAnimation(player.source())->effect())->getFrames()); | 142 WillBeHeapVector<RefPtrWillBeMember<Keyframe>> normalizedKeyframes = Key
frameEffectModelBase::normalizedKeyframesForInspector(toKeyframeEffectModelBase(
toAnimation(player.source())->effect())->getFrames()); |
143 TimingFunction* easing = nullptr; | 143 TimingFunction* easing = nullptr; |
144 for (const auto& keyframe : normalizedKeyframes) { | 144 for (const auto& keyframe : normalizedKeyframes) { |
145 if (styleKeyframe->keys().contains(keyframe->offset())) | 145 if (styleKeyframe->keys().contains(keyframe->offset())) |
146 easing = &keyframe->easing(); | 146 easing = &keyframe->easing(); |
147 } | 147 } |
148 ASSERT(easing); | 148 ASSERT(easing); |
149 keyframes->addItem(buildObjectForStyleRuleKeyframe(styleKeyframe.get(),
*easing)); | 149 keyframes->addItem(buildObjectForStyleRuleKeyframe(styleKeyframe.get(),
*easing)); |
150 } | 150 } |
151 | 151 |
152 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder:
:Animation::KeyframesRule::create() | 152 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder:
:Animation::KeyframesRule::create() |
153 .setKeyframes(keyframes); | 153 .setKeyframes(keyframes); |
154 keyframesObject->setName(keyframesRule->name()); | 154 keyframesObject->setName(keyframesRule->name()); |
155 return keyframesObject.release(); | 155 return keyframesObject.release(); |
156 } | 156 } |
157 | 157 |
158 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimation
Keyframes(const Animation* animation) | 158 static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimation
Keyframes(const Animation* animation) |
159 { | 159 { |
160 if (!animation->effect()->isKeyframeEffectModel()) | 160 if (!animation->effect()->isKeyframeEffectModel()) |
161 return nullptr; | 161 return nullptr; |
162 const KeyframeEffectModelBase* effect = toKeyframeEffectModelBase(animation-
>effect()); | 162 const KeyframeEffectModelBase* effect = toKeyframeEffectModelBase(animation-
>effect()); |
163 WillBeHeapVector<RefPtrWillBeMember<Keyframe> > normalizedKeyframes = Keyfra
meEffectModelBase::normalizedKeyframesForInspector(effect->getFrames()); | 163 WillBeHeapVector<RefPtrWillBeMember<Keyframe>> normalizedKeyframes = Keyfram
eEffectModelBase::normalizedKeyframesForInspector(effect->getFrames()); |
164 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes
= TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); | 164 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>> keyframes
= TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); |
165 | 165 |
166 for (const auto& keyframe : normalizedKeyframes) { | 166 for (const auto& keyframe : normalizedKeyframes) { |
167 // Ignore CSS Transitions | 167 // Ignore CSS Transitions |
168 if (!keyframe.get()->isStringKeyframe()) | 168 if (!keyframe.get()->isStringKeyframe()) |
169 continue; | 169 continue; |
170 const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get()); | 170 const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get()); |
171 keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe)); | 171 keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe)); |
172 } | 172 } |
173 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder:
:Animation::KeyframesRule::create() | 173 RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder:
:Animation::KeyframesRule::create() |
174 .setKeyframes(keyframes); | 174 .setKeyframes(keyframes); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 .setPausedState(player.paused()) | 208 .setPausedState(player.paused()) |
209 .setPlayState(player.playState()) | 209 .setPlayState(player.playState()) |
210 .setPlaybackRate(player.playbackRate()) | 210 .setPlaybackRate(player.playbackRate()) |
211 .setStartTime(player.startTime()) | 211 .setStartTime(player.startTime()) |
212 .setCurrentTime(player.currentTime()) | 212 .setCurrentTime(player.currentTime()) |
213 .setSource(animationObject.release()) | 213 .setSource(animationObject.release()) |
214 .setType(animationType); | 214 .setType(animationType); |
215 return playerObject.release(); | 215 return playerObject.release(); |
216 } | 216 } |
217 | 217 |
218 PassRefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer> > Inspect
orAnimationAgent::buildArrayForAnimationPlayers(Element& element, const WillBeHe
apVector<RefPtrWillBeMember<AnimationPlayer> > players) | 218 PassRefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>> Inspecto
rAnimationAgent::buildArrayForAnimationPlayers(Element& element, const WillBeHea
pVector<RefPtrWillBeMember<AnimationPlayer>> players) |
219 { | 219 { |
220 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer> > animati
onPlayersArray = TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>::cr
eate(); | 220 RefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>> animatio
nPlayersArray = TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>::cre
ate(); |
221 for (const auto& it : players) { | 221 for (const auto& it : players) { |
222 AnimationPlayer& player = *(it.get()); | 222 AnimationPlayer& player = *(it.get()); |
223 Animation* animation = toAnimation(player.source()); | 223 Animation* animation = toAnimation(player.source()); |
224 if (!element.contains(animation->target())) | 224 if (!element.contains(animation->target())) |
225 continue; | 225 continue; |
226 m_idToAnimationPlayer.set(playerId(player), &player); | 226 m_idToAnimationPlayer.set(playerId(player), &player); |
227 animationPlayersArray->addItem(buildObjectForAnimationPlayer(player)); | 227 animationPlayersArray->addItem(buildObjectForAnimationPlayer(player)); |
228 } | 228 } |
229 return animationPlayersArray.release(); | 229 return animationPlayersArray.release(); |
230 } | 230 } |
231 | 231 |
232 void InspectorAnimationAgent::getAnimationPlayersForNode(ErrorString* errorStrin
g, int nodeId, bool includeSubtreeAnimations, RefPtr<TypeBuilder::Array<TypeBuil
der::Animation::AnimationPlayer> >& animationPlayersArray) | 232 void InspectorAnimationAgent::getAnimationPlayersForNode(ErrorString* errorStrin
g, int nodeId, bool includeSubtreeAnimations, RefPtr<TypeBuilder::Array<TypeBuil
der::Animation::AnimationPlayer>>& animationPlayersArray) |
233 { | 233 { |
234 Element* element = m_domAgent->assertElement(errorString, nodeId); | 234 Element* element = m_domAgent->assertElement(errorString, nodeId); |
235 if (!element) | 235 if (!element) |
236 return; | 236 return; |
237 m_idToAnimationPlayer.clear(); | 237 m_idToAnimationPlayer.clear(); |
238 WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > players; | 238 WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer>> players; |
239 if (!includeSubtreeAnimations) | 239 if (!includeSubtreeAnimations) |
240 players = ElementAnimation::getAnimationPlayers(*element); | 240 players = ElementAnimation::getAnimationPlayers(*element); |
241 else | 241 else |
242 players = element->ownerDocument()->timeline().getAnimationPlayers(); | 242 players = element->ownerDocument()->timeline().getAnimationPlayers(); |
243 animationPlayersArray = buildArrayForAnimationPlayers(*element, players); | 243 animationPlayersArray = buildArrayForAnimationPlayers(*element, players); |
244 } | 244 } |
245 | 245 |
246 void InspectorAnimationAgent::pauseAnimationPlayer(ErrorString* errorString, con
st String& id, RefPtr<TypeBuilder::Animation::AnimationPlayer>& animationPlayer) | 246 void InspectorAnimationAgent::pauseAnimationPlayer(ErrorString* errorString, con
st String& id, RefPtr<TypeBuilder::Animation::AnimationPlayer>& animationPlayer) |
247 { | 247 { |
248 AnimationPlayer* player = assertAnimationPlayer(errorString, id); | 248 AnimationPlayer* player = assertAnimationPlayer(errorString, id); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 { | 323 { |
324 #if ENABLE(OILPAN) | 324 #if ENABLE(OILPAN) |
325 visitor->trace(m_idToAnimationPlayer); | 325 visitor->trace(m_idToAnimationPlayer); |
326 visitor->trace(m_domAgent); | 326 visitor->trace(m_domAgent); |
327 visitor->trace(m_element); | 327 visitor->trace(m_element); |
328 #endif | 328 #endif |
329 InspectorBaseAgent::trace(visitor); | 329 InspectorBaseAgent::trace(visitor); |
330 } | 330 } |
331 | 331 |
332 } | 332 } |
OLD | NEW |