summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
diff options
context:
space:
mode:
authorjohnme@chromium.org <johnme@chromium.org>2015-07-31 10:16:58 +0000
committerjohnme@chromium.org <johnme@chromium.org>2015-07-31 10:16:58 +0000
commit707edc954c4a7d1bc01ff936faeb4c5b9271ff80 (patch)
tree6e202c25703d01da96d0d44ecd211a7201711562 /third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
parent3fbc41c90be0c660992451bd3a6cf167d82d26d8 (diff)
downloadchromium_src-707edc954c4a7d1bc01ff936faeb4c5b9271ff80.zip
chromium_src-707edc954c4a7d1bc01ff936faeb4c5b9271ff80.tar.gz
chromium_src-707edc954c4a7d1bc01ff936faeb4c5b9271ff80.tar.bz2
Revert of Animations: Port ProgrammaticScrollAnimator to use compositor timelines (patchset #7 id:120001 of https://codereview.chromium.org/1133513002/)
Reason for revert: Since this landed, 8 out of 9 runs of virtual/threaded_animation_timelines/fast/scroll-behavior/overflow-scroll-root-frame-animates.html have timed out on WebKit Linux MSAN: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=virtual%2Fthreaded_animation_timelines%2Ffast%2Fscroll-behavior%2Foverflow-scroll-root-frame-animates.html There has also been a timeout on WebKit Win Oilpan (dbg): http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20Oilpan%20(dbg)/builds/1889 Original issue's description: > Animations: Port ProgrammaticScrollAnimator to use compositor timelines > > Use AnimationPlayer to add animations if new system enabled. > > Previous episode: https://codereview.chromium.org/1119763003/ > What we want to achieve: https://codereview.chromium.org/1131833002 > > BUG=394777 > R=ajuma@chromium.org > > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199766 TBR=ajuma@chromium.org,vollick@chromium.org,loyso@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=394777 Review URL: https://codereview.chromium.org/1254963011 git-svn-id: svn://svn.chromium.org/blink/trunk@199815 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp')
-rw-r--r--third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp83
1 files changed, 5 insertions, 78 deletions
diff --git a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
index 6a12886..1de1c2a 100644
--- a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
@@ -5,14 +5,11 @@
#include "config.h"
#include "platform/scroll/ProgrammaticScrollAnimator.h"
-#include "platform/RuntimeEnabledFeatures.h"
#include "platform/geometry/IntPoint.h"
#include "platform/graphics/GraphicsLayer.h"
#include "platform/scroll/ScrollableArea.h"
#include "public/platform/Platform.h"
#include "public/platform/WebCompositorAnimation.h"
-#include "public/platform/WebCompositorAnimationPlayer.h"
-#include "public/platform/WebCompositorAnimationTimeline.h"
#include "public/platform/WebCompositorSupport.h"
#include "public/platform/WebScrollOffsetAnimationCurve.h"
@@ -24,27 +21,16 @@ PassOwnPtr<ProgrammaticScrollAnimator> ProgrammaticScrollAnimator::create(Scroll
}
ProgrammaticScrollAnimator::ProgrammaticScrollAnimator(ScrollableArea* scrollableArea)
- : m_compositorAnimationAttachedToLayerId(0)
- , m_scrollableArea(scrollableArea)
+ : m_scrollableArea(scrollableArea)
, m_startTime(0.0)
, m_runState(RunState::Idle)
, m_compositorAnimationId(0)
, m_compositorAnimationGroupId(0)
{
- if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) {
- ASSERT(Platform::current()->compositorSupport());
- m_compositorPlayer = adoptPtr(Platform::current()->compositorSupport()->createAnimationPlayer());
- ASSERT(m_compositorPlayer);
- m_compositorPlayer->setAnimationDelegate(this);
- }
}
ProgrammaticScrollAnimator::~ProgrammaticScrollAnimator()
{
- if (m_compositorPlayer) {
- m_compositorPlayer->setAnimationDelegate(nullptr);
- m_compositorPlayer.clear();
- }
}
void ProgrammaticScrollAnimator::resetAnimationState()
@@ -150,15 +136,8 @@ void ProgrammaticScrollAnimator::updateCompositorAnimations()
// compositor animation that needs to be removed here before the new
// animation is added below.
ASSERT(m_runState == RunState::WaitingToCancelOnCompositor || m_runState == RunState::WaitingToSendToCompositor);
-
- if (m_compositorPlayer) {
- if (m_compositorPlayer->isLayerAttached())
- m_compositorPlayer->removeAnimation(m_compositorAnimationId);
- } else {
- if (GraphicsLayer* layer = m_scrollableArea->layerForScrolling())
- layer->removeAnimation(m_compositorAnimationId);
- }
-
+ if (GraphicsLayer* layer = m_scrollableArea->layerForScrolling())
+ layer->removeAnimation(m_compositorAnimationId);
m_compositorAnimationId = 0;
m_compositorAnimationGroupId = 0;
if (m_runState == RunState::WaitingToCancelOnCompositor) {
@@ -176,18 +155,7 @@ void ProgrammaticScrollAnimator::updateCompositorAnimations()
int animationId = animation->id();
int animationGroupId = animation->group();
-
- bool animationAdded = false;
- if (m_compositorPlayer) {
- if (m_compositorPlayer->isLayerAttached()) {
- m_compositorPlayer->addAnimation(animation.leakPtr());
- animationAdded = true;
- }
- } else {
- animationAdded = m_scrollableArea->layerForScrolling()->addAnimation(animation.release());
- }
-
- if (animationAdded) {
+ if (m_scrollableArea->layerForScrolling()->addAnimation(animation.release())) {
sentToCompositor = true;
m_runState = RunState::RunningOnCompositor;
m_compositorAnimationId = animationId;
@@ -206,35 +174,8 @@ void ProgrammaticScrollAnimator::updateCompositorAnimations()
}
}
-void ProgrammaticScrollAnimator::reattachCompositorPlayerIfNeeded(WebCompositorAnimationTimeline* timeline)
+void ProgrammaticScrollAnimator::layerForCompositedScrollingDidChange()
{
- int compositorAnimationAttachedToLayerId = 0;
- if (m_scrollableArea->layerForScrolling())
- compositorAnimationAttachedToLayerId = m_scrollableArea->layerForScrolling()->platformLayer()->id();
-
- if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToLayerId) {
- if (m_compositorPlayer && timeline) {
- // Detach from old layer (if any).
- if (m_compositorAnimationAttachedToLayerId) {
- ASSERT(m_compositorPlayer->isLayerAttached());
- m_compositorPlayer->detachLayer();
- timeline->playerDestroyed(*this);
- }
- // Attach to new layer (if any).
- if (compositorAnimationAttachedToLayerId) {
- ASSERT(m_scrollableArea->layerForScrolling());
- timeline->playerAttached(*this);
- m_compositorPlayer->attachLayer(m_scrollableArea->layerForScrolling()->platformLayer());
- }
- m_compositorAnimationAttachedToLayerId = compositorAnimationAttachedToLayerId;
- }
- }
-}
-
-void ProgrammaticScrollAnimator::layerForCompositedScrollingDidChange(WebCompositorAnimationTimeline* timeline)
-{
- reattachCompositorPlayerIfNeeded(timeline);
-
// If the composited scrolling layer is lost during a composited animation,
// continue the animation on the main thread.
if (m_runState == RunState::RunningOnCompositor && !m_scrollableArea->layerForScrolling()) {
@@ -271,18 +212,4 @@ void ProgrammaticScrollAnimator::notifyCompositorAnimationFinished(int groupId)
}
}
-void ProgrammaticScrollAnimator::notifyAnimationStarted(double monotonicTime, int group)
-{
-}
-
-void ProgrammaticScrollAnimator::notifyAnimationFinished(double monotonicTime, int group)
-{
- notifyCompositorAnimationFinished(group);
-}
-
-WebCompositorAnimationPlayer* ProgrammaticScrollAnimator::compositorPlayer() const
-{
- return m_compositorPlayer.get();
-}
-
} // namespace blink