Changeset 243112 in webkit


Ignore:
Timestamp:
Mar 18, 2019 3:45:47 PM (5 years ago)
Author:
Alan Bujtas
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):

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r243109 r243112  
     12019-03-18  Zalan Bujtas  <zalan@apple.com>
     2
     3        Call transition and animation callbacks on non-composited renderers too.
     4        https://bugs.webkit.org/show_bug.cgi?id=195907
     5
     6        Reviewed by Simon Fraser.
     7
     8        These callbacks are not composited specific functions.
     9
     10        * page/animation/AnimationBase.cpp:
     11        (WebCore::AnimationBase::freezeAtTime):
     12        (WebCore::AnimationBase::compositedRenderer const): Deleted.
     13        * page/animation/AnimationBase.h:
     14        * page/animation/ImplicitAnimation.cpp:
     15        (WebCore::ImplicitAnimation::startAnimation):
     16        (WebCore::ImplicitAnimation::pauseAnimation):
     17        (WebCore::ImplicitAnimation::endAnimation):
     18        * page/animation/KeyframeAnimation.cpp:
     19        (WebCore::KeyframeAnimation::startAnimation):
     20        (WebCore::KeyframeAnimation::pauseAnimation):
     21        (WebCore::KeyframeAnimation::endAnimation):
     22        * rendering/RenderLayerModelObject.cpp:
     23        (WebCore::RenderLayerModelObject::startTransition):
     24        (WebCore::RenderLayerModelObject::transitionPaused):
     25        (WebCore::RenderLayerModelObject::transitionFinished):
     26        (WebCore::RenderLayerModelObject::startAnimation):
     27        (WebCore::RenderLayerModelObject::animationPaused):
     28        (WebCore::RenderLayerModelObject::animationSeeked):
     29        (WebCore::RenderLayerModelObject::animationFinished):
     30        (WebCore::RenderLayerModelObject::suspendAnimations):
     31
    1322019-03-18  Jer Noble  <jer.noble@apple.com>
    233
  • trunk/Source/WebCore/page/animation/AnimationBase.cpp

    r243103 r243112  
    7070}
    7171
    72 RenderLayerModelObject* AnimationBase::compositedRenderer() const
    73 {
    74     auto* renderer = this->renderer();
    75     if (!renderer || !renderer->isComposited())
    76         return nullptr;
    77     return downcast<RenderLayerModelObject>(renderer);
    78 }
    79 
    8072void AnimationBase::clear()
    8173{
     
    680672        m_pauseTime = m_startTime.valueOr(0) + t - m_animation->delay();
    681673
    682     if (auto* renderer = compositedRenderer())
     674    if (auto* renderer = this->renderer())
    683675        renderer->suspendAnimations(MonotonicTime::fromRawSeconds(m_pauseTime.value()));
    684676}
  • trunk/Source/WebCore/page/animation/AnimationBase.h

    r243103 r243112  
    4040class FloatRect;
    4141class LayoutRect;
    42 class RenderLayerModelObject;
    4342class RenderElement;
    4443class RenderStyle;
     
    6362    const RenderStyle& currentStyle() const override;
    6463    RenderElement* renderer() const override;
    65     RenderLayerModelObject* compositedRenderer() const;
    6664    void clear();
    6765
  • trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp

    r240012 r243112  
    145145bool ImplicitAnimation::startAnimation(double timeOffset)
    146146{
    147     if (auto* renderer = compositedRenderer())
     147    if (auto* renderer = this->renderer())
    148148        return renderer->startTransition(timeOffset, m_animatingProperty, m_fromStyle.get(), m_toStyle.get());
    149149    return false;
     
    152152void ImplicitAnimation::pauseAnimation(double timeOffset)
    153153{
    154     if (auto* renderer = compositedRenderer())
     154    if (auto* renderer = this->renderer())
    155155        renderer->transitionPaused(timeOffset, m_animatingProperty);
    156156    // Restore the original (unanimated) style
     
    161161void ImplicitAnimation::endAnimation(bool)
    162162{
    163     if (auto* renderer = compositedRenderer())
     163    if (auto* renderer = this->renderer())
    164164        renderer->transitionFinished(m_animatingProperty);
    165165}
  • trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp

    r240012 r243112  
    292292bool KeyframeAnimation::startAnimation(double timeOffset)
    293293{
    294     if (auto* renderer = compositedRenderer())
     294    if (auto* renderer = this->renderer())
    295295        return renderer->startAnimation(timeOffset, m_animation.ptr(), m_keyframes);
    296296    return false;
     
    302302        return;
    303303
    304     if (auto* renderer = compositedRenderer())
     304    if (auto* renderer = this->renderer())
    305305        renderer->animationPaused(timeOffset, m_keyframes.animationName());
    306306
     
    315315        return;
    316316
    317     if (auto* renderer = compositedRenderer())
     317    if (auto* renderer = this->renderer())
    318318        renderer->animationFinished(m_keyframes.animationName());
    319319
  • trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp

    r243103 r243112  
    286286bool RenderLayerModelObject::startTransition(double timeOffset, CSSPropertyID propertyId, const RenderStyle* fromStyle, const RenderStyle* toStyle)
    287287{
    288     ASSERT(hasLayer());
    289     ASSERT(isComposited());
     288    if (!layer() || !layer()->backing())
     289        return false;
    290290    return layer()->backing()->startTransition(timeOffset, propertyId, fromStyle, toStyle);
    291291}
     
    293293void RenderLayerModelObject::transitionPaused(double timeOffset, CSSPropertyID propertyId)
    294294{
    295     ASSERT(hasLayer());
    296     ASSERT(isComposited());
     295    if (!layer() || !layer()->backing())
     296        return;
    297297    layer()->backing()->transitionPaused(timeOffset, propertyId);
    298298}
     
    300300void RenderLayerModelObject::transitionFinished(CSSPropertyID propertyId)
    301301{
    302     ASSERT(hasLayer());
    303     ASSERT(isComposited());
     302    if (!layer() || !layer()->backing())
     303        return;
    304304    layer()->backing()->transitionFinished(propertyId);
    305305}
     
    307307bool RenderLayerModelObject::startAnimation(double timeOffset, const Animation* animation, const KeyframeList& keyframes)
    308308{
    309     ASSERT(hasLayer());
    310     ASSERT(isComposited());
     309    if (!layer() || !layer()->backing())
     310        return false;
    311311    return layer()->backing()->startAnimation(timeOffset, animation, keyframes);
    312312}
     
    314314void RenderLayerModelObject::animationPaused(double timeOffset, const String& name)
    315315{
    316     ASSERT(hasLayer());
    317     ASSERT(isComposited());
     316    if (!layer() || !layer()->backing())
     317        return;
    318318    layer()->backing()->animationPaused(timeOffset, name);
    319319}
     
    321321void RenderLayerModelObject::animationSeeked(double timeOffset, const String& name)
    322322{
    323     ASSERT(hasLayer());
    324     ASSERT(isComposited());
     323    if (!layer() || !layer()->backing())
     324        return;
    325325    layer()->backing()->animationSeeked(timeOffset, name);
    326326}
     
    328328void RenderLayerModelObject::animationFinished(const String& name)
    329329{
    330     ASSERT(hasLayer());
    331     ASSERT(isComposited());
     330    if (!layer() || !layer()->backing())
     331        return;
    332332    layer()->backing()->animationFinished(name);
    333333}
     
    335335void RenderLayerModelObject::suspendAnimations(MonotonicTime time)
    336336{
    337     ASSERT(hasLayer());
    338     ASSERT(isComposited());
     337    if (!layer() || !layer()->backing())
     338        return;
    339339    layer()->backing()->suspendAnimations(time);
    340340}
Note: See TracChangeset for help on using the changeset viewer.