| Index: Source/core/inspector/InspectorAnimationAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorAnimationAgent.cpp b/Source/core/inspector/InspectorAnimationAgent.cpp
|
| index c579916c4c5d460e294d9f451eb04260bf798631..beae397044d060547280dd0fe3c6381e2d76af02 100644
|
| --- a/Source/core/inspector/InspectorAnimationAgent.cpp
|
| +++ b/Source/core/inspector/InspectorAnimationAgent.cpp
|
| @@ -8,11 +8,11 @@
|
|
|
| #include "core/animation/Animation.h"
|
| #include "core/animation/AnimationEffect.h"
|
| -#include "core/animation/AnimationNode.h"
|
| -#include "core/animation/AnimationNodeTiming.h"
|
| -#include "core/animation/AnimationPlayer.h"
|
| +#include "core/animation/AnimationEffectTiming.h"
|
| #include "core/animation/ComputedTimingProperties.h"
|
| +#include "core/animation/EffectModel.h"
|
| #include "core/animation/ElementAnimation.h"
|
| +#include "core/animation/KeyframeEffect.h"
|
| #include "core/animation/KeyframeEffectModel.h"
|
| #include "core/animation/StringKeyframe.h"
|
| #include "core/css/CSSKeyframeRule.h"
|
| @@ -57,19 +57,19 @@ void InspectorAnimationAgent::disable(ErrorString*)
|
| {
|
| m_state->setBoolean(AnimationAgentState::animationAgentEnabled, false);
|
| m_instrumentingAgents->setInspectorAnimationAgent(nullptr);
|
| - m_idToAnimationPlayer.clear();
|
| + m_idToAnimation.clear();
|
| m_idToAnimationType.clear();
|
| }
|
|
|
| void InspectorAnimationAgent::didCommitLoadForLocalFrame(LocalFrame* frame)
|
| {
|
| if (frame == m_pageAgent->inspectedFrame()) {
|
| - m_idToAnimationPlayer.clear();
|
| + m_idToAnimation.clear();
|
| m_idToAnimationType.clear();
|
| }
|
| }
|
|
|
| -static PassRefPtr<TypeBuilder::Animation::AnimationNode> buildObjectForAnimation(Animation* animation, bool isTransition)
|
| +static PassRefPtr<TypeBuilder::Animation::AnimationNode> buildObjectForAnimation(KeyframeEffect* animation, bool isTransition)
|
| {
|
| ComputedTimingProperties computedTiming;
|
| animation->computedTiming(computedTiming);
|
| @@ -126,12 +126,12 @@ static PassRefPtr<TypeBuilder::Animation::KeyframeStyle> buildObjectForStringKey
|
| return keyframeObject.release();
|
| }
|
|
|
| -static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForStyleRuleKeyframes(const AnimationPlayer& player, const StyleRuleKeyframes* keyframesRule)
|
| +static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForStyleRuleKeyframes(const Animation& player, const StyleRuleKeyframes* keyframesRule)
|
| {
|
| RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes = TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create();
|
| const WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> >& styleKeyframes = keyframesRule->keyframes();
|
| for (const auto& styleKeyframe : styleKeyframes) {
|
| - WillBeHeapVector<RefPtrWillBeMember<Keyframe> > normalizedKeyframes = KeyframeEffectModelBase::normalizedKeyframesForInspector(toKeyframeEffectModelBase(toAnimation(player.source())->effect())->getFrames());
|
| + WillBeHeapVector<RefPtrWillBeMember<Keyframe>> normalizedKeyframes = KeyframeEffectModelBase::normalizedKeyframesForInspector(toKeyframeEffectModelBase(toKeyframeEffect(player.source())->effect())->getFrames());
|
| TimingFunction* easing = nullptr;
|
| for (const auto& keyframe : normalizedKeyframes) {
|
| if (styleKeyframe->keys().contains(keyframe->offset()))
|
| @@ -147,7 +147,7 @@ static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForStyleRule
|
| return keyframesObject.release();
|
| }
|
|
|
| -static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimationKeyframes(const Animation* animation)
|
| +static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimationKeyframes(const KeyframeEffect* animation)
|
| {
|
| if (!animation->effect()->isKeyframeEffectModel())
|
| return nullptr;
|
| @@ -167,10 +167,10 @@ static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimation
|
| return keyframesObject.release();
|
| }
|
|
|
| -PassRefPtr<TypeBuilder::Animation::AnimationPlayer> InspectorAnimationAgent::buildObjectForAnimationPlayer(AnimationPlayer& player)
|
| +PassRefPtr<TypeBuilder::Animation::AnimationPlayer> InspectorAnimationAgent::buildObjectForAnimationPlayer(Animation& player)
|
| {
|
| // Find type of animation
|
| - const Element* element = toAnimation(player.source())->target();
|
| + const Element* element = toKeyframeEffect(player.source())->target();
|
| StyleResolver& styleResolver = element->ownerDocument()->ensureStyleResolver();
|
| CSSAnimations& cssAnimations = element->elementAnimations()->cssAnimations();
|
| const AtomicString animationName = cssAnimations.getAnimationNameForInspector(player);
|
| @@ -187,15 +187,15 @@ PassRefPtr<TypeBuilder::Animation::AnimationPlayer> InspectorAnimationAgent::bui
|
| animationType = AnimationType::CSSTransition;
|
| } else {
|
| // Web Animations
|
| - keyframeRule = buildObjectForAnimationKeyframes(toAnimation(player.source()));
|
| + keyframeRule = buildObjectForAnimationKeyframes(toKeyframeEffect(player.source()));
|
| animationType = AnimationType::WebAnimation;
|
| }
|
|
|
| String id = String::number(player.sequenceNumber());
|
| - m_idToAnimationPlayer.set(id, &player);
|
| + m_idToAnimation.set(id, &player);
|
| m_idToAnimationType.set(id, animationType);
|
|
|
| - RefPtr<TypeBuilder::Animation::AnimationNode> animationObject = buildObjectForAnimation(toAnimation(player.source()), animationType == AnimationType::CSSTransition);
|
| + RefPtr<TypeBuilder::Animation::AnimationNode> animationObject = buildObjectForAnimation(toKeyframeEffect(player.source()), animationType == AnimationType::CSSTransition);
|
| if (keyframeRule)
|
| animationObject->setKeyframesRule(keyframeRule);
|
|
|
| @@ -211,12 +211,12 @@ PassRefPtr<TypeBuilder::Animation::AnimationPlayer> InspectorAnimationAgent::bui
|
| return playerObject.release();
|
| }
|
|
|
| -PassRefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer> > InspectorAnimationAgent::buildArrayForAnimationPlayers(Element& element, const WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > players)
|
| +PassRefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>> InspectorAnimationAgent::buildArrayForAnimations(Element& element, const WillBeHeapVector<RefPtrWillBeMember<Animation>> players)
|
| {
|
| RefPtr<TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer> > animationPlayersArray = TypeBuilder::Array<TypeBuilder::Animation::AnimationPlayer>::create();
|
| for (const auto& it : players) {
|
| - AnimationPlayer& player = *(it.get());
|
| - Animation* animation = toAnimation(player.source());
|
| + Animation& player = *(it.get());
|
| + KeyframeEffect* animation = toKeyframeEffect(player.source());
|
| if (!element.contains(animation->target()))
|
| continue;
|
| animationPlayersArray->addItem(buildObjectForAnimationPlayer(player));
|
| @@ -229,12 +229,12 @@ void InspectorAnimationAgent::getAnimationPlayersForNode(ErrorString* errorStrin
|
| Element* element = m_domAgent->assertElement(errorString, nodeId);
|
| if (!element)
|
| return;
|
| - WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > players;
|
| + WillBeHeapVector<RefPtrWillBeMember<Animation>> players;
|
| if (!includeSubtreeAnimations)
|
| - players = ElementAnimation::getAnimationPlayers(*element);
|
| + players = ElementAnimation::getAnimations(*element);
|
| else
|
| - players = element->ownerDocument()->timeline().getAnimationPlayers();
|
| - animationPlayersArray = buildArrayForAnimationPlayers(*element, players);
|
| + players = element->ownerDocument()->timeline().getAnimations();
|
| + animationPlayersArray = buildArrayForAnimations(*element, players);
|
| }
|
|
|
| void InspectorAnimationAgent::getPlaybackRate(ErrorString*, double* playbackRate)
|
| @@ -263,13 +263,13 @@ void InspectorAnimationAgent::setCurrentTime(ErrorString*, double currentTime)
|
|
|
| void InspectorAnimationAgent::setTiming(ErrorString* errorString, const String& playerId, double duration, double delay)
|
| {
|
| - AnimationPlayer* player = assertAnimationPlayer(errorString, playerId);
|
| + Animation* player = assertAnimation(errorString, playerId);
|
| if (!player)
|
| return;
|
|
|
| AnimationType type = m_idToAnimationType.get(playerId);
|
| if (type == AnimationType::CSSTransition) {
|
| - Animation* animation = toAnimation(player->source());
|
| + KeyframeEffect* animation = toKeyframeEffect(player->source());
|
| KeyframeEffectModelBase* effect = toKeyframeEffectModelBase(animation->effect());
|
| const AnimatableValueKeyframeEffectModel* oldEffect = toAnimatableValueKeyframeEffectModel(effect);
|
| // Refer to CSSAnimations::calculateTransitionUpdateForProperty() for the structure of transitions.
|
| @@ -282,12 +282,12 @@ void InspectorAnimationAgent::setTiming(ErrorString* errorString, const String&
|
| newFrames[1]->setOffset(delay / (delay + duration));
|
| effect->setFrames(newFrames);
|
|
|
| - RefPtrWillBeRawPtr<AnimationNodeTiming> timing = player->source()->timing();
|
| + RefPtrWillBeRawPtr<AnimationEffectTiming> timing = player->source()->timing();
|
| UnrestrictedDoubleOrString unrestrictedDuration;
|
| unrestrictedDuration.setUnrestrictedDouble(duration + delay);
|
| timing->setDuration(unrestrictedDuration);
|
| } else if (type == AnimationType::WebAnimation) {
|
| - RefPtrWillBeRawPtr<AnimationNodeTiming> timing = player->source()->timing();
|
| + RefPtrWillBeRawPtr<AnimationEffectTiming> timing = player->source()->timing();
|
| UnrestrictedDoubleOrString unrestrictedDuration;
|
| unrestrictedDuration.setUnrestrictedDouble(duration);
|
| timing->setDuration(unrestrictedDuration);
|
| @@ -295,32 +295,32 @@ void InspectorAnimationAgent::setTiming(ErrorString* errorString, const String&
|
| }
|
| }
|
|
|
| -void InspectorAnimationAgent::didCreateAnimationPlayer(AnimationPlayer* player)
|
| +void InspectorAnimationAgent::didCreateAnimation(Animation* player)
|
| {
|
| const String& playerId = String::number(player->sequenceNumber());
|
| - if (m_idToAnimationPlayer.get(playerId))
|
| + if (m_idToAnimation.get(playerId))
|
| return;
|
|
|
| // Check threshold
|
| double latestStartTime = 0;
|
| - for (const auto& p : m_idToAnimationPlayer.values())
|
| + for (const auto& p : m_idToAnimation.values())
|
| latestStartTime = max(latestStartTime, normalizedStartTime(*p));
|
|
|
| bool reset = false;
|
| const double threshold = 1000;
|
| if (normalizedStartTime(*player) - latestStartTime > threshold) {
|
| reset = true;
|
| - m_idToAnimationPlayer.clear();
|
| + m_idToAnimation.clear();
|
| m_idToAnimationType.clear();
|
| }
|
|
|
| frontend()->animationPlayerCreated(buildObjectForAnimationPlayer(*player), reset);
|
| }
|
|
|
| -void InspectorAnimationAgent::didCancelAnimationPlayer(AnimationPlayer* player)
|
| +void InspectorAnimationAgent::didCancelAnimation(Animation* player)
|
| {
|
| const String& playerId = String::number(player->sequenceNumber());
|
| - if (!m_idToAnimationPlayer.get(playerId))
|
| + if (!m_idToAnimation.get(playerId))
|
| return;
|
| frontend()->animationPlayerCanceled(playerId);
|
| }
|
| @@ -333,9 +333,9 @@ void InspectorAnimationAgent::didClearDocumentOfWindowObject(LocalFrame* frame)
|
| frame->document()->timeline().setPlaybackRate(referenceTimeline().playbackRate());
|
| }
|
|
|
| -AnimationPlayer* InspectorAnimationAgent::assertAnimationPlayer(ErrorString* errorString, const String& id)
|
| +Animation* InspectorAnimationAgent::assertAnimation(ErrorString* errorString, const String& id)
|
| {
|
| - AnimationPlayer* player = m_idToAnimationPlayer.get(id);
|
| + Animation* player = m_idToAnimation.get(id);
|
| if (!player) {
|
| *errorString = "Could not find animation player with given id";
|
| return nullptr;
|
| @@ -348,7 +348,7 @@ AnimationTimeline& InspectorAnimationAgent::referenceTimeline()
|
| return m_pageAgent->inspectedFrame()->document()->timeline();
|
| }
|
|
|
| -double InspectorAnimationAgent::normalizedStartTime(AnimationPlayer& player)
|
| +double InspectorAnimationAgent::normalizedStartTime(Animation& player)
|
| {
|
| if (referenceTimeline().playbackRate() == 0)
|
| return player.startTime() + referenceTimeline().currentTime() - player.timeline()->currentTime();
|
| @@ -360,7 +360,7 @@ DEFINE_TRACE(InspectorAnimationAgent)
|
| #if ENABLE(OILPAN)
|
| visitor->trace(m_pageAgent);
|
| visitor->trace(m_domAgent);
|
| - visitor->trace(m_idToAnimationPlayer);
|
| + visitor->trace(m_idToAnimation);
|
| visitor->trace(m_idToAnimationType);
|
| #endif
|
| InspectorBaseAgent::trace(visitor);
|
|
|