Changeset 243112 in webkit
- Timestamp:
- Mar 18, 2019 3:45:47 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243109 r243112 1 2019-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 1 32 2019-03-18 Jer Noble <jer.noble@apple.com> 2 33 -
trunk/Source/WebCore/page/animation/AnimationBase.cpp
r243103 r243112 70 70 } 71 71 72 RenderLayerModelObject* AnimationBase::compositedRenderer() const73 {74 auto* renderer = this->renderer();75 if (!renderer || !renderer->isComposited())76 return nullptr;77 return downcast<RenderLayerModelObject>(renderer);78 }79 80 72 void AnimationBase::clear() 81 73 { … … 680 672 m_pauseTime = m_startTime.valueOr(0) + t - m_animation->delay(); 681 673 682 if (auto* renderer = compositedRenderer())674 if (auto* renderer = this->renderer()) 683 675 renderer->suspendAnimations(MonotonicTime::fromRawSeconds(m_pauseTime.value())); 684 676 } -
trunk/Source/WebCore/page/animation/AnimationBase.h
r243103 r243112 40 40 class FloatRect; 41 41 class LayoutRect; 42 class RenderLayerModelObject;43 42 class RenderElement; 44 43 class RenderStyle; … … 63 62 const RenderStyle& currentStyle() const override; 64 63 RenderElement* renderer() const override; 65 RenderLayerModelObject* compositedRenderer() const;66 64 void clear(); 67 65 -
trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp
r240012 r243112 145 145 bool ImplicitAnimation::startAnimation(double timeOffset) 146 146 { 147 if (auto* renderer = compositedRenderer())147 if (auto* renderer = this->renderer()) 148 148 return renderer->startTransition(timeOffset, m_animatingProperty, m_fromStyle.get(), m_toStyle.get()); 149 149 return false; … … 152 152 void ImplicitAnimation::pauseAnimation(double timeOffset) 153 153 { 154 if (auto* renderer = compositedRenderer())154 if (auto* renderer = this->renderer()) 155 155 renderer->transitionPaused(timeOffset, m_animatingProperty); 156 156 // Restore the original (unanimated) style … … 161 161 void ImplicitAnimation::endAnimation(bool) 162 162 { 163 if (auto* renderer = compositedRenderer())163 if (auto* renderer = this->renderer()) 164 164 renderer->transitionFinished(m_animatingProperty); 165 165 } -
trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp
r240012 r243112 292 292 bool KeyframeAnimation::startAnimation(double timeOffset) 293 293 { 294 if (auto* renderer = compositedRenderer())294 if (auto* renderer = this->renderer()) 295 295 return renderer->startAnimation(timeOffset, m_animation.ptr(), m_keyframes); 296 296 return false; … … 302 302 return; 303 303 304 if (auto* renderer = compositedRenderer())304 if (auto* renderer = this->renderer()) 305 305 renderer->animationPaused(timeOffset, m_keyframes.animationName()); 306 306 … … 315 315 return; 316 316 317 if (auto* renderer = compositedRenderer())317 if (auto* renderer = this->renderer()) 318 318 renderer->animationFinished(m_keyframes.animationName()); 319 319 -
trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp
r243103 r243112 286 286 bool RenderLayerModelObject::startTransition(double timeOffset, CSSPropertyID propertyId, const RenderStyle* fromStyle, const RenderStyle* toStyle) 287 287 { 288 ASSERT(hasLayer());289 ASSERT(isComposited());288 if (!layer() || !layer()->backing()) 289 return false; 290 290 return layer()->backing()->startTransition(timeOffset, propertyId, fromStyle, toStyle); 291 291 } … … 293 293 void RenderLayerModelObject::transitionPaused(double timeOffset, CSSPropertyID propertyId) 294 294 { 295 ASSERT(hasLayer());296 ASSERT(isComposited());295 if (!layer() || !layer()->backing()) 296 return; 297 297 layer()->backing()->transitionPaused(timeOffset, propertyId); 298 298 } … … 300 300 void RenderLayerModelObject::transitionFinished(CSSPropertyID propertyId) 301 301 { 302 ASSERT(hasLayer());303 ASSERT(isComposited());302 if (!layer() || !layer()->backing()) 303 return; 304 304 layer()->backing()->transitionFinished(propertyId); 305 305 } … … 307 307 bool RenderLayerModelObject::startAnimation(double timeOffset, const Animation* animation, const KeyframeList& keyframes) 308 308 { 309 ASSERT(hasLayer());310 ASSERT(isComposited());309 if (!layer() || !layer()->backing()) 310 return false; 311 311 return layer()->backing()->startAnimation(timeOffset, animation, keyframes); 312 312 } … … 314 314 void RenderLayerModelObject::animationPaused(double timeOffset, const String& name) 315 315 { 316 ASSERT(hasLayer());317 ASSERT(isComposited());316 if (!layer() || !layer()->backing()) 317 return; 318 318 layer()->backing()->animationPaused(timeOffset, name); 319 319 } … … 321 321 void RenderLayerModelObject::animationSeeked(double timeOffset, const String& name) 322 322 { 323 ASSERT(hasLayer());324 ASSERT(isComposited());323 if (!layer() || !layer()->backing()) 324 return; 325 325 layer()->backing()->animationSeeked(timeOffset, name); 326 326 } … … 328 328 void RenderLayerModelObject::animationFinished(const String& name) 329 329 { 330 ASSERT(hasLayer());331 ASSERT(isComposited());330 if (!layer() || !layer()->backing()) 331 return; 332 332 layer()->backing()->animationFinished(name); 333 333 } … … 335 335 void RenderLayerModelObject::suspendAnimations(MonotonicTime time) 336 336 { 337 ASSERT(hasLayer());338 ASSERT(isComposited());337 if (!layer() || !layer()->backing()) 338 return; 339 339 layer()->backing()->suspendAnimations(time); 340 340 }
Note: See TracChangeset
for help on using the changeset viewer.