diff options
author | johnme@chromium.org <johnme@chromium.org> | 2015-07-31 10:16:58 +0000 |
---|---|---|
committer | johnme@chromium.org <johnme@chromium.org> | 2015-07-31 10:16:58 +0000 |
commit | 707edc954c4a7d1bc01ff936faeb4c5b9271ff80 (patch) | |
tree | 6e202c25703d01da96d0d44ecd211a7201711562 /third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp | |
parent | 3fbc41c90be0c660992451bd3a6cf167d82d26d8 (diff) | |
download | chromium_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.cpp | 83 |
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 |