Title: [243112] trunk/Source/WebCore
Revision
243112
Author
za...@apple.com
Date
2019-03-18 15:45:47 -0700 (Mon, 18 Mar 2019)

Log Message

Call transition and animation callbacks on non-composited renderers too.
https://bugs.webkit.org/show_bug.cgi?id=195907

Reviewed by Simon Fraser.

These callbacks are not composited specific functions.

* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::freezeAtTime):
(WebCore::AnimationBase::compositedRenderer const): Deleted.
* page/animation/AnimationBase.h:
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::startAnimation):
(WebCore::ImplicitAnimation::pauseAnimation):
(WebCore::ImplicitAnimation::endAnimation):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::pauseAnimation):
(WebCore::KeyframeAnimation::endAnimation):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::startTransition):
(WebCore::RenderLayerModelObject::transitionPaused):
(WebCore::RenderLayerModelObject::transitionFinished):
(WebCore::RenderLayerModelObject::startAnimation):
(WebCore::RenderLayerModelObject::animationPaused):
(WebCore::RenderLayerModelObject::animationSeeked):
(WebCore::RenderLayerModelObject::animationFinished):
(WebCore::RenderLayerModelObject::suspendAnimations):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (243111 => 243112)


--- trunk/Source/WebCore/ChangeLog	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/ChangeLog	2019-03-18 22:45:47 UTC (rev 243112)
@@ -1,3 +1,34 @@
+2019-03-18  Zalan Bujtas  <za...@apple.com>
+
+        Call transition and animation callbacks on non-composited renderers too.
+        https://bugs.webkit.org/show_bug.cgi?id=195907
+
+        Reviewed by Simon Fraser.
+
+        These callbacks are not composited specific functions.
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::AnimationBase::freezeAtTime):
+        (WebCore::AnimationBase::compositedRenderer const): Deleted.
+        * page/animation/AnimationBase.h:
+        * page/animation/ImplicitAnimation.cpp:
+        (WebCore::ImplicitAnimation::startAnimation):
+        (WebCore::ImplicitAnimation::pauseAnimation):
+        (WebCore::ImplicitAnimation::endAnimation):
+        * page/animation/KeyframeAnimation.cpp:
+        (WebCore::KeyframeAnimation::startAnimation):
+        (WebCore::KeyframeAnimation::pauseAnimation):
+        (WebCore::KeyframeAnimation::endAnimation):
+        * rendering/RenderLayerModelObject.cpp:
+        (WebCore::RenderLayerModelObject::startTransition):
+        (WebCore::RenderLayerModelObject::transitionPaused):
+        (WebCore::RenderLayerModelObject::transitionFinished):
+        (WebCore::RenderLayerModelObject::startAnimation):
+        (WebCore::RenderLayerModelObject::animationPaused):
+        (WebCore::RenderLayerModelObject::animationSeeked):
+        (WebCore::RenderLayerModelObject::animationFinished):
+        (WebCore::RenderLayerModelObject::suspendAnimations):
+
 2019-03-18  Jer Noble  <jer.no...@apple.com>
 
         Add experimental "alphaChannel" property to VideoConfiguration

Modified: trunk/Source/WebCore/page/animation/AnimationBase.cpp (243111 => 243112)


--- trunk/Source/WebCore/page/animation/AnimationBase.cpp	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/page/animation/AnimationBase.cpp	2019-03-18 22:45:47 UTC (rev 243112)
@@ -69,14 +69,6 @@
     return m_element ? m_element->renderer() : nullptr;
 }
 
-RenderLayerModelObject* AnimationBase::compositedRenderer() const
-{
-    auto* renderer = this->renderer();
-    if (!renderer || !renderer->isComposited())
-        return nullptr;
-    return downcast<RenderLayerModelObject>(renderer);
-}
-
 void AnimationBase::clear()
 {
     endAnimation();
@@ -679,7 +671,7 @@
     else
         m_pauseTime = m_startTime.valueOr(0) + t - m_animation->delay();
 
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         renderer->suspendAnimations(MonotonicTime::fromRawSeconds(m_pauseTime.value()));
 }
 

Modified: trunk/Source/WebCore/page/animation/AnimationBase.h (243111 => 243112)


--- trunk/Source/WebCore/page/animation/AnimationBase.h	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/page/animation/AnimationBase.h	2019-03-18 22:45:47 UTC (rev 243112)
@@ -39,7 +39,6 @@
 class Element;
 class FloatRect;
 class LayoutRect;
-class RenderLayerModelObject;
 class RenderElement;
 class RenderStyle;
 class TimingFunction;
@@ -62,7 +61,6 @@
     Element* element() const { return m_element.get(); }
     const RenderStyle& currentStyle() const override;
     RenderElement* renderer() const override;
-    RenderLayerModelObject* compositedRenderer() const;
     void clear();
 
     double duration() const;

Modified: trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp (243111 => 243112)


--- trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp	2019-03-18 22:45:47 UTC (rev 243112)
@@ -144,7 +144,7 @@
 
 bool ImplicitAnimation::startAnimation(double timeOffset)
 {
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         return renderer->startTransition(timeOffset, m_animatingProperty, m_fromStyle.get(), m_toStyle.get());
     return false;
 }
@@ -151,7 +151,7 @@
 
 void ImplicitAnimation::pauseAnimation(double timeOffset)
 {
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         renderer->transitionPaused(timeOffset, m_animatingProperty);
     // Restore the original (unanimated) style
     if (!paused())
@@ -160,7 +160,7 @@
 
 void ImplicitAnimation::endAnimation(bool)
 {
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         renderer->transitionFinished(m_animatingProperty);
 }
 

Modified: trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp (243111 => 243112)


--- trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp	2019-03-18 22:45:47 UTC (rev 243112)
@@ -291,7 +291,7 @@
 
 bool KeyframeAnimation::startAnimation(double timeOffset)
 {
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         return renderer->startAnimation(timeOffset, m_animation.ptr(), m_keyframes);
     return false;
 }
@@ -301,7 +301,7 @@
     if (!element())
         return;
 
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         renderer->animationPaused(timeOffset, m_keyframes.animationName());
 
     // Restore the original (unanimated) style
@@ -314,7 +314,7 @@
     if (!element())
         return;
 
-    if (auto* renderer = compositedRenderer())
+    if (auto* renderer = this->renderer())
         renderer->animationFinished(m_keyframes.animationName());
 
     // Restore the original (unanimated) style

Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp (243111 => 243112)


--- trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2019-03-18 22:42:11 UTC (rev 243111)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2019-03-18 22:45:47 UTC (rev 243112)
@@ -285,57 +285,57 @@
 
 bool RenderLayerModelObject::startTransition(double timeOffset, CSSPropertyID propertyId, const RenderStyle* fromStyle, const RenderStyle* toStyle)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return false;
     return layer()->backing()->startTransition(timeOffset, propertyId, fromStyle, toStyle);
 }
 
 void RenderLayerModelObject::transitionPaused(double timeOffset, CSSPropertyID propertyId)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->transitionPaused(timeOffset, propertyId);
 }
 
 void RenderLayerModelObject::transitionFinished(CSSPropertyID propertyId)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->transitionFinished(propertyId);
 }
 
 bool RenderLayerModelObject::startAnimation(double timeOffset, const Animation* animation, const KeyframeList& keyframes)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return false;
     return layer()->backing()->startAnimation(timeOffset, animation, keyframes);
 }
 
 void RenderLayerModelObject::animationPaused(double timeOffset, const String& name)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->animationPaused(timeOffset, name);
 }
 
 void RenderLayerModelObject::animationSeeked(double timeOffset, const String& name)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->animationSeeked(timeOffset, name);
 }
 
 void RenderLayerModelObject::animationFinished(const String& name)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->animationFinished(name);
 }
 
 void RenderLayerModelObject::suspendAnimations(MonotonicTime time)
 {
-    ASSERT(hasLayer());
-    ASSERT(isComposited());
+    if (!layer() || !layer()->backing())
+        return;
     layer()->backing()->suspendAnimations(time);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to