Changeset 243103 in webkit
- Timestamp:
- Mar 18, 2019 2:25:37 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243096 r243103 1 2019-03-18 Zalan Bujtas <zalan@apple.com> 2 3 Move animation and transition functions from RenderBoxModelObject to RenderElement 4 https://bugs.webkit.org/show_bug.cgi?id=195903 5 6 Reviewed by Simon Fraser. 7 8 Transitions and animations do not require RenderBoxModelObject. Move these functions to RenderElement and override them at RenderLayerModelObject to support 9 composition related callbacks. 10 11 * page/animation/AnimationBase.cpp: 12 (WebCore::AnimationBase::compositedRenderer const): 13 * page/animation/AnimationBase.h: 14 * rendering/RenderBoxModelObject.cpp: 15 (WebCore::RenderBoxModelObject::startTransition): Deleted. 16 (WebCore::RenderBoxModelObject::transitionPaused): Deleted. 17 (WebCore::RenderBoxModelObject::transitionFinished): Deleted. 18 (WebCore::RenderBoxModelObject::startAnimation): Deleted. 19 (WebCore::RenderBoxModelObject::animationPaused): Deleted. 20 (WebCore::RenderBoxModelObject::animationSeeked): Deleted. 21 (WebCore::RenderBoxModelObject::animationFinished): Deleted. 22 (WebCore::RenderBoxModelObject::suspendAnimations): Deleted. 23 * rendering/RenderBoxModelObject.h: 24 * rendering/RenderElement.cpp: 25 (WebCore::RenderElement::startTransition): 26 (WebCore::RenderElement::transitionPaused): 27 (WebCore::RenderElement::transitionFinished): 28 (WebCore::RenderElement::startAnimation): 29 (WebCore::RenderElement::animationPaused): 30 (WebCore::RenderElement::animationSeeked): 31 (WebCore::RenderElement::animationFinished): 32 (WebCore::RenderElement::suspendAnimations): 33 * rendering/RenderElement.h: 34 1 35 2019-03-18 Antti Koivisto <antti@apple.com> 2 36 -
trunk/Source/WebCore/page/animation/AnimationBase.cpp
r240237 r243103 70 70 } 71 71 72 Render BoxModelObject* AnimationBase::compositedRenderer() const72 RenderLayerModelObject* AnimationBase::compositedRenderer() const 73 73 { 74 74 auto* renderer = this->renderer(); 75 75 if (!renderer || !renderer->isComposited()) 76 76 return nullptr; 77 return downcast<Render BoxModelObject>(renderer);77 return downcast<RenderLayerModelObject>(renderer); 78 78 } 79 79 -
trunk/Source/WebCore/page/animation/AnimationBase.h
r240012 r243103 40 40 class FloatRect; 41 41 class LayoutRect; 42 class Render BoxModelObject;42 class RenderLayerModelObject; 43 43 class RenderElement; 44 44 class RenderStyle; … … 63 63 const RenderStyle& currentStyle() const override; 64 64 RenderElement* renderer() const override; 65 Render BoxModelObject* compositedRenderer() const;65 RenderLayerModelObject* compositedRenderer() const; 66 66 void clear(); 67 67 -
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
r239504 r243103 162 162 } 163 163 164 bool RenderBoxModelObject::startTransition(double timeOffset, CSSPropertyID propertyId, const RenderStyle* fromStyle, const RenderStyle* toStyle)165 {166 ASSERT(hasLayer());167 ASSERT(isComposited());168 return layer()->backing()->startTransition(timeOffset, propertyId, fromStyle, toStyle);169 }170 171 void RenderBoxModelObject::transitionPaused(double timeOffset, CSSPropertyID propertyId)172 {173 ASSERT(hasLayer());174 ASSERT(isComposited());175 layer()->backing()->transitionPaused(timeOffset, propertyId);176 }177 178 void RenderBoxModelObject::transitionFinished(CSSPropertyID propertyId)179 {180 ASSERT(hasLayer());181 ASSERT(isComposited());182 layer()->backing()->transitionFinished(propertyId);183 }184 185 bool RenderBoxModelObject::startAnimation(double timeOffset, const Animation* animation, const KeyframeList& keyframes)186 {187 ASSERT(hasLayer());188 ASSERT(isComposited());189 return layer()->backing()->startAnimation(timeOffset, animation, keyframes);190 }191 192 void RenderBoxModelObject::animationPaused(double timeOffset, const String& name)193 {194 ASSERT(hasLayer());195 ASSERT(isComposited());196 layer()->backing()->animationPaused(timeOffset, name);197 }198 199 void RenderBoxModelObject::animationSeeked(double timeOffset, const String& name)200 {201 ASSERT(hasLayer());202 ASSERT(isComposited());203 layer()->backing()->animationSeeked(timeOffset, name);204 }205 206 void RenderBoxModelObject::animationFinished(const String& name)207 {208 ASSERT(hasLayer());209 ASSERT(isComposited());210 layer()->backing()->animationFinished(name);211 }212 213 void RenderBoxModelObject::suspendAnimations(MonotonicTime time)214 {215 ASSERT(hasLayer());216 ASSERT(isComposited());217 layer()->backing()->suspendAnimations(time);218 }219 220 164 RenderBoxModelObject::RenderBoxModelObject(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags) 221 165 : RenderLayerModelObject(element, WTFMove(style), baseTypeFlags | RenderBoxModelObjectFlag) -
trunk/Source/WebCore/rendering/RenderBoxModelObject.h
r239502 r243103 61 61 class ImageBuffer; 62 62 class InlineFlowBox; 63 class KeyframeList;64 63 class RenderTextFragment; 65 64 class StickyPositionViewportConstraints; … … 224 223 bool hasAcceleratedCompositing() const; 225 224 226 bool startTransition(double, CSSPropertyID, const RenderStyle* fromStyle, const RenderStyle* toStyle);227 void transitionPaused(double timeOffset, CSSPropertyID);228 void transitionFinished(CSSPropertyID);229 230 bool startAnimation(double timeOffset, const Animation*, const KeyframeList& keyframes);231 void animationPaused(double timeOffset, const String& name);232 void animationSeeked(double timeOffset, const String& name);233 void animationFinished(const String& name);234 235 void suspendAnimations(MonotonicTime = MonotonicTime());236 237 225 RenderBoxModelObject* continuation() const; 238 226 WEBCORE_EXPORT RenderInline* inlineContinuation() const; -
trunk/Source/WebCore/rendering/RenderElement.h
r238404 r243103 29 29 30 30 class ControlStates; 31 class KeyframeList; 31 32 class RenderBlock; 32 33 class RenderTreeBuilder; … … 221 222 RenderObject* attachRendererInternal(RenderPtr<RenderObject> child, RenderObject* beforeChild); 222 223 RenderPtr<RenderObject> detachRendererInternal(RenderObject&); 224 225 virtual bool startTransition(double /* timeOffset */, CSSPropertyID, const RenderStyle* /* fromStyle */, const RenderStyle* /* toStyle */) { return false; } 226 virtual void transitionPaused(double /* timeOffset */, CSSPropertyID) { } 227 virtual void transitionFinished(CSSPropertyID) { } 228 229 virtual bool startAnimation(double /* timeOffset */, const Animation*, const KeyframeList&) { return false; } 230 virtual void animationPaused(double /* timeOffset */, const String& /* name */) { } 231 virtual void animationSeeked(double /* timeOffset */, const String& /* name */) { } 232 virtual void animationFinished(const String& /* name */) { } 233 234 virtual void suspendAnimations(MonotonicTime = MonotonicTime()) { } 223 235 224 236 protected: -
trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp
r240921 r243103 284 284 } 285 285 286 bool RenderLayerModelObject::startTransition(double timeOffset, CSSPropertyID propertyId, const RenderStyle* fromStyle, const RenderStyle* toStyle) 287 { 288 ASSERT(hasLayer()); 289 ASSERT(isComposited()); 290 return layer()->backing()->startTransition(timeOffset, propertyId, fromStyle, toStyle); 291 } 292 293 void RenderLayerModelObject::transitionPaused(double timeOffset, CSSPropertyID propertyId) 294 { 295 ASSERT(hasLayer()); 296 ASSERT(isComposited()); 297 layer()->backing()->transitionPaused(timeOffset, propertyId); 298 } 299 300 void RenderLayerModelObject::transitionFinished(CSSPropertyID propertyId) 301 { 302 ASSERT(hasLayer()); 303 ASSERT(isComposited()); 304 layer()->backing()->transitionFinished(propertyId); 305 } 306 307 bool RenderLayerModelObject::startAnimation(double timeOffset, const Animation* animation, const KeyframeList& keyframes) 308 { 309 ASSERT(hasLayer()); 310 ASSERT(isComposited()); 311 return layer()->backing()->startAnimation(timeOffset, animation, keyframes); 312 } 313 314 void RenderLayerModelObject::animationPaused(double timeOffset, const String& name) 315 { 316 ASSERT(hasLayer()); 317 ASSERT(isComposited()); 318 layer()->backing()->animationPaused(timeOffset, name); 319 } 320 321 void RenderLayerModelObject::animationSeeked(double timeOffset, const String& name) 322 { 323 ASSERT(hasLayer()); 324 ASSERT(isComposited()); 325 layer()->backing()->animationSeeked(timeOffset, name); 326 } 327 328 void RenderLayerModelObject::animationFinished(const String& name) 329 { 330 ASSERT(hasLayer()); 331 ASSERT(isComposited()); 332 layer()->backing()->animationFinished(name); 333 } 334 335 void RenderLayerModelObject::suspendAnimations(MonotonicTime time) 336 { 337 ASSERT(hasLayer()); 338 ASSERT(isComposited()); 339 layer()->backing()->suspendAnimations(time); 340 } 341 286 342 } // namespace WebCore 287 343 -
trunk/Source/WebCore/rendering/RenderLayerModelObject.h
r228908 r243103 27 27 namespace WebCore { 28 28 29 class KeyframeList; 29 30 class RenderLayer; 30 31 … … 69 70 void clearRepaintLayoutRects(); 70 71 72 bool startTransition(double timeOffset, CSSPropertyID, const RenderStyle* fromStyle, const RenderStyle* toStyle) override; 73 void transitionPaused(double timeOffset, CSSPropertyID) override; 74 void transitionFinished(CSSPropertyID) override; 75 76 bool startAnimation(double timeOffset, const Animation*, const KeyframeList& keyframes) override; 77 void animationPaused(double timeOffset, const String& name) override; 78 void animationSeeked(double timeOffset, const String& name) override; 79 void animationFinished(const String& name) override; 80 81 void suspendAnimations(MonotonicTime = MonotonicTime()) override; 82 71 83 protected: 72 84 RenderLayerModelObject(Element&, RenderStyle&&, BaseTypeFlags);
Note: See TracChangeset
for help on using the changeset viewer.