haikuwebkit/LayoutTests/transitions/clip-path-transitions-expec...

6 lines
478 B
Plaintext
Raw Permalink Normal View History

Clip-path transitions sometimes trigger endless animation timers https://bugs.webkit.org/show_bug.cgi?id=150018 Reviewed by Tim Horton. Source/WebCore: Transitioning -webkit-clip-path could trigger endless animation timers, because when CompositeAnimation::updateTransitions() calls isTargetPropertyEqual(), a false negative answer triggers canceling the current transition and starting a new one over and over. This happened because StyleRareNonInheritedData simply tested pointer equality for m_clipPath and m_shapeOutside. Both of these need to do deep equality testing, requiring the implementation of operator== in BasicShapes classes. In addition, the PropertyWrappers in CSSPropertyAnimation need equals() implementations that also do more than pointer equality testing. Tests: transitions/clip-path-transitions.html transitions/shape-outside-transitions.html * page/animation/CSSPropertyAnimation.cpp: (WebCore::PropertyWrapperClipPath::equals): (WebCore::PropertyWrapperShape::equals): * rendering/ClipPathOperation.h: * rendering/style/BasicShapes.cpp: (WebCore::BasicShapeCircle::operator==): (WebCore::BasicShapeEllipse::operator==): (WebCore::BasicShapePolygon::operator==): (WebCore::BasicShapeInset::operator==): * rendering/style/BasicShapes.h: (WebCore::BasicShapeCenterCoordinate::operator==): (WebCore::BasicShapeRadius::operator==): * rendering/style/ShapeValue.cpp: (WebCore::pointersOrValuesEqual): (WebCore::ShapeValue::operator==): * rendering/style/ShapeValue.h: (WebCore::ShapeValue::operator!=): (WebCore::ShapeValue::operator==): Deleted. (WebCore::ShapeValue::ShapeValue): Deleted. * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::operator==): (WebCore::StyleRareNonInheritedData::clipPathOperationsEquivalent): (WebCore::StyleRareNonInheritedData::shapeOutsideDataEquivalent): * rendering/style/StyleRareNonInheritedData.h: LayoutTests: New tests for transitions of clip-path and shape-outside. * transitions/clip-path-transitions-expected.txt: Added. * transitions/clip-path-transitions.html: Added. * transitions/resources/transition-test-helpers.js: (parseClipPath): (checkExpectedValue): * transitions/shape-outside-transitions-expected.txt: Added. * transitions/shape-outside-transitions.html: Added. * transitions/svg-transitions-expected.txt: Canonical link: https://commits.webkit.org/168166@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-10-12 19:15:28 +00:00
PASS - "-webkit-clip-path" property for "circle" element at 0.5s saw something close to: circle(60px at 50px 40px)
PASS - "-webkit-clip-path" property for "ellipse" element at 0.5s saw something close to: ellipse(15px 30px at 50px 40px)
PASS - "-webkit-clip-path" property for "inset" element at 0.5s saw something close to: inset(15px 22px)
PASS - "-webkit-clip-path" property for "polygon" element at 0.5s saw something close to: polygon(15px 0px, 75px 0, 60px 45px, 0 45px)