Starting a "width" transition for a simple <div> will return the same values for "from" and "to" when getKeyframes() is called. This cannot be correct since a transition cannot have the same from and to values. Digging into this, this is about this code in ComputedStyleExtractor::valueForPropertyInStyle(): case CSSPropertyWidth: if (renderer && !renderer->isRenderOrLegacyRenderSVGModelObject()) { // According to http://www.w3.org/TR/CSS2/visudet.html#the-width-property, // the "width" property does not apply for non-replaced inline elements. if (!isNonReplacedInline(*renderer)) return zoomAdjustedPixelValue(sizingBox(*renderer).width(), style); } return zoomAdjustedPixelValueForLength(style.width(), style); In this case we end up calling zoomAdjustedPixelValue(sizingBox(*renderer).width(), style) which simply does not use the values provided in the RenderStyle for the keyframe.
Created attachment 462334 [details] testcase
Pull request: https://github.com/WebKit/WebKit/pull/4350
<rdar://problem/100223910>
I believe this got fixed along with bug 23924. Will add a new test though.
Committed 254793@main (1ed5a302e8a0): <https://commits.webkit.org/254793@main> Reviewed commits have been landed. Closing PR #4350 and removing active labels.