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

Unified Diff: Source/core/frame/animation/AnimationBase.h

Issue 139273007: Web Animations: Remove legacy animations engine. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix TestExpectations. Created 6 years, 10 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/frame/FrameView.cpp ('k') | Source/core/frame/animation/AnimationBase.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/frame/animation/AnimationBase.h
diff --git a/Source/core/frame/animation/AnimationBase.h b/Source/core/frame/animation/AnimationBase.h
deleted file mode 100644
index bba82598536545afd670abc6e510fe8498d3e77a..0000000000000000000000000000000000000000
--- a/Source/core/frame/animation/AnimationBase.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef AnimationBase_h
-#define AnimationBase_h
-
-#include "CSSPropertyNames.h"
-#include "core/animation/css/CSSAnimationData.h"
-#include "core/rendering/style/RenderStyleConstants.h"
-#include "wtf/RefCounted.h"
-
-namespace WebCore {
-
-class AnimationBase;
-class AnimationController;
-class CompositeAnimation;
-class Element;
-class Node;
-class RenderObject;
-class RenderStyle;
-class TimingFunction;
-
-class AnimationBase : public RefCounted<AnimationBase> {
- friend class CompositeAnimation;
- friend class CSSPropertyAnimation;
-
-public:
- AnimationBase(const CSSAnimationData* transition, RenderObject& renderer, CompositeAnimation* compAnim);
- virtual ~AnimationBase() { }
-
- RenderObject* renderer() const { return m_object; }
- void clear()
- {
- endAnimation();
- m_object = 0;
- m_compAnim = 0;
- }
-
- double duration() const;
-
- // Animations and Transitions go through the states below. When entering the STARTED state
- // the animation is started. This may or may not require deferred response from the animator.
- // If so, we stay in this state until that response is received (and it returns the start time).
- // Otherwise, we use the current time as the start time and go immediately to AnimationStateLooping
- // or AnimationStateEnding.
- enum AnimState {
- AnimationStateNew, // animation just created, animation not running yet
- AnimationStateStartWaitTimer, // start timer running, waiting for fire
- AnimationStateStartWaitStyleAvailable, // waiting for style setup so we can start animations
- AnimationStateStartWaitResponse, // animation started, waiting for response
- AnimationStateLooping, // response received, animation running, loop timer running, waiting for fire
- AnimationStateEnding, // received, animation running, end timer running, waiting for fire
- AnimationStatePausedWaitTimer, // in pause mode when animation started
- AnimationStatePausedWaitStyleAvailable, // in pause mode when waiting for style setup
- AnimationStatePausedWaitResponse, // animation paused when in STARTING state
- AnimationStatePausedRun, // animation paused when in LOOPING or ENDING state
- AnimationStateDone, // end timer fired, animation finished and removed
- AnimationStateFillingForwards // animation has ended and is retaining its final value
- };
-
- enum AnimStateInput {
- AnimationStateInputMakeNew, // reset back to new from any state
- AnimationStateInputStartAnimation, // animation requests a start
- AnimationStateInputRestartAnimation, // force a restart from any state
- AnimationStateInputStartTimerFired, // start timer fired
- AnimationStateInputStyleAvailable, // style is setup, ready to start animating
- AnimationStateInputStartTimeSet, // m_startTime was set
- AnimationStateInputLoopTimerFired, // loop timer fired
- AnimationStateInputEndTimerFired, // end timer fired
- AnimationStateInputPauseOverride, // pause an animation due to override
- AnimationStateInputResumeOverride, // resume an overridden animation
- AnimationStateInputPlayStateRunning, // play state paused -> running
- AnimationStateInputPlayStatePaused, // play state running -> paused
- AnimationStateInputEndAnimation // force an end from any state
- };
-
- // Called when animation is in AnimationStateNew to start animation
- void updateStateMachine(AnimStateInput, double param);
-
- // Animation has actually started, at passed time
- void onAnimationStartResponse(double startTime)
- {
- updateStateMachine(AnimationBase::AnimationStateInputStartTimeSet, startTime);
- }
-
- // Called to change to or from paused state
- void updatePlayState(EAnimPlayState);
- bool playStatePlaying() const;
-
- bool waitingToStart() const { return m_animState == AnimationStateNew || m_animState == AnimationStateStartWaitTimer; }
- bool preActive() const
- {
- return m_animState == AnimationStateNew || m_animState == AnimationStateStartWaitTimer || m_animState == AnimationStateStartWaitStyleAvailable || m_animState == AnimationStateStartWaitResponse;
- }
-
- bool postActive() const { return m_animState == AnimationStateDone; }
- bool active() const { return !postActive() && !preActive(); }
- bool running() const { return !isNew() && !postActive(); }
- bool paused() const { return m_pauseTime >= 0; }
- bool isNew() const { return m_animState == AnimationStateNew; }
- bool waitingForStartTime() const { return m_animState == AnimationStateStartWaitResponse; }
- bool waitingForStyleAvailable() const { return m_animState == AnimationStateStartWaitStyleAvailable; }
-
- virtual double timeToNextService();
-
- double progress(double scale, double offset, const TimingFunction*) const;
-
- virtual void animate(CompositeAnimation*, RenderObject*, const RenderStyle* /*currentStyle*/, RenderStyle* /*targetStyle*/, RefPtr<RenderStyle>& /*animatedStyle*/) = 0;
- virtual void getAnimatedStyle(RefPtr<RenderStyle>& /*animatedStyle*/) = 0;
-
- virtual bool shouldFireEvents() const { return false; }
-
- void fireAnimationEventsIfNeeded();
-
- void setAnimation(const CSSAnimationData* anim) { m_animation = const_cast<CSSAnimationData*>(anim); }
-
- // Return true if this animation is overridden. This will only be the case for
- // ImplicitAnimations and is used to determine whether or not we should force
- // set the start time. If an animation is overridden, it will probably not get
- // back the AnimationStateInputStartTimeSet input.
- virtual bool overridden() const { return false; }
-
- // Does this animation/transition involve the given property?
- virtual bool affectsProperty(CSSPropertyID /*property*/) const { return false; }
-
- bool isAnimatingProperty(CSSPropertyID property, bool acceleratedOnly, bool isRunningNow) const
- {
- if (acceleratedOnly && !m_isAccelerated)
- return false;
-
- if (isRunningNow)
- return (!waitingToStart() && !postActive()) && affectsProperty(property);
-
- return !postActive() && affectsProperty(property);
- }
-
- // FIXME: rename this using the "lists match" terminology.
- bool isTransformFunctionListValid() const { return m_transformFunctionListValid; }
- bool filterFunctionListsMatch() const { return m_filterFunctionListsMatch; }
-
- // Freeze the animation; used by DumpRenderTree.
- void freezeAtTime(double t);
-
- double beginAnimationUpdateTime() const;
-
- double getElapsedTime() const;
-
- void styleAvailable()
- {
- ASSERT(waitingForStyleAvailable());
- updateStateMachine(AnimationBase::AnimationStateInputStyleAvailable, -1);
- }
-
- const CSSAnimationData* animation() const { return m_animation.get(); }
-
-protected:
- virtual void overrideAnimations() { }
- virtual void resumeOverriddenAnimations() { }
-
- CompositeAnimation* compositeAnimation() { return m_compAnim; }
-
- // These are called when the corresponding timer fires so subclasses can do any extra work
- virtual void onAnimationStart(double /*elapsedTime*/) { }
- virtual void onAnimationIteration(double /*elapsedTime*/) { }
- virtual void onAnimationEnd(double /*elapsedTime*/) { }
-
- // timeOffset is an offset from the current time when the animation should start. Negative values are OK.
- virtual void startAnimation(double /*timeOffset*/) { }
- // timeOffset is the time at which the animation is being paused.
- virtual void pauseAnimation(double /*timeOffset*/) { }
- virtual void endAnimation() { }
-
- void goIntoEndingOrLoopingState();
-
- bool isAccelerated() const { return m_isAccelerated; }
-
- static void setNeedsStyleRecalc(Node*);
-
- void getTimeToNextEvent(double& time, bool& isLooping) const;
-
- double fractionalTime(double scale, double elapsedTime, double offset) const;
-
- AnimState m_animState;
-
- bool m_isAccelerated;
- bool m_transformFunctionListValid;
- bool m_filterFunctionListsMatch;
- double m_startTime;
- double m_pauseTime;
- double m_requestedStartTime;
-
- double m_totalDuration;
- double m_nextIterationDuration;
-
- RenderObject* m_object;
-
- RefPtr<CSSAnimationData> m_animation;
- CompositeAnimation* m_compAnim;
-};
-
-} // namespace WebCore
-
-#endif // AnimationBase_h
« no previous file with comments | « Source/core/frame/FrameView.cpp ('k') | Source/core/frame/animation/AnimationBase.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698