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

Unified Diff: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp

Issue 1944623002: CC Animation: Use ElementId to attach CC animation players. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@erasedomids
Patch Set: Let CC clients generate their own ElementIds locally. Created 4 years, 7 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
Index: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
index 41858117597c83e260d30c92e1c10d6dba15207d..763a2d8a265adad43605cbdf5ac394907cf7ca67 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
@@ -17,7 +17,7 @@
namespace blink {
ScrollAnimatorCompositorCoordinator::ScrollAnimatorCompositorCoordinator()
- : m_compositorAnimationAttachedToLayerId(0)
+ : m_compositorAnimationAttachedToElementId(0)
, m_runState(RunState::Idle)
, m_compositorAnimationId(0)
, m_compositorAnimationGroupId(0)
@@ -67,7 +67,7 @@ bool ScrollAnimatorCompositorCoordinator::hasAnimationThatRequiresService() cons
bool ScrollAnimatorCompositorCoordinator::addAnimation(
PassOwnPtr<CompositorAnimation> animation)
{
- if (m_compositorPlayer->isLayerAttached()) {
+ if (m_compositorPlayer->isElementAttached()) {
m_compositorPlayer->addAnimation(animation.leakPtr());
return true;
}
@@ -76,13 +76,13 @@ bool ScrollAnimatorCompositorCoordinator::addAnimation(
void ScrollAnimatorCompositorCoordinator::removeAnimation()
{
- if (m_compositorPlayer->isLayerAttached())
+ if (m_compositorPlayer->isElementAttached())
m_compositorPlayer->removeAnimation(m_compositorAnimationId);
}
void ScrollAnimatorCompositorCoordinator::abortAnimation()
{
- if (m_compositorPlayer->isLayerAttached())
+ if (m_compositorPlayer->isElementAttached())
m_compositorPlayer->abortAnimation(m_compositorAnimationId);
}
@@ -175,27 +175,30 @@ bool ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded(
CompositorAnimationTimeline* timeline)
{
bool reattached = false;
- int compositorAnimationAttachedToLayerId = 0;
- if (getScrollableArea()->layerForScrolling())
- compositorAnimationAttachedToLayerId = getScrollableArea()->layerForScrolling()->platformLayer()->id();
+ CompositorElementId compositorAnimationAttachedToElementId = 0;
+ GraphicsLayer* layerForScrolling = getScrollableArea()->layerForScrolling();
+ if (layerForScrolling) {
+ if (!layerForScrolling->platformLayer()->elementId())
+ layerForScrolling->platformLayer()->setElementId(nextCompositorElementId());
+ compositorAnimationAttachedToElementId = layerForScrolling->platformLayer()->elementId();
+ }
- if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToLayerId) {
+ if (compositorAnimationAttachedToElementId != m_compositorAnimationAttachedToElementId) {
if (m_compositorPlayer && timeline) {
// Detach from old layer (if any).
- if (m_compositorAnimationAttachedToLayerId) {
- if (m_compositorPlayer->isLayerAttached())
- m_compositorPlayer->detachLayer();
+ if (m_compositorAnimationAttachedToElementId) {
+ if (m_compositorPlayer->isElementAttached())
+ m_compositorPlayer->detachElement();
timeline->playerDestroyed(*this);
}
// Attach to new layer (if any).
- if (compositorAnimationAttachedToLayerId) {
- ASSERT(!m_compositorPlayer->isLayerAttached());
+ if (compositorAnimationAttachedToElementId) {
+ ASSERT(!m_compositorPlayer->isElementAttached());
timeline->playerAttached(*this);
- m_compositorPlayer->attachLayer(
- getScrollableArea()->layerForScrolling()->platformLayer());
+ m_compositorPlayer->attachElement(compositorAnimationAttachedToElementId);
reattached = true;
}
- m_compositorAnimationAttachedToLayerId = compositorAnimationAttachedToLayerId;
+ m_compositorAnimationAttachedToElementId = compositorAnimationAttachedToElementId;
}
}

Powered by Google App Engine
This is Rietveld 408576698