[webkit-reviews] review requested: [Bug 131842] ASSERTION FAILED: !isUndefined() in WebCore::Length::isZero() : [Attachment 229639] Proposed patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Apr 18 05:23:46 PDT 2014


Martin Hodovan <mhodovan.u-szeged at partner.samsung.com> has asked  for review:
Bug 131842: ASSERTION FAILED: !isUndefined() in WebCore::Length::isZero()
https://bugs.webkit.org/show_bug.cgi?id=131842

Attachment 229639: Proposed patch
https://bugs.webkit.org/attachment.cgi?id=229639&action=review

------- Additional Comments from Martin Hodovan
<mhodovan.u-szeged at partner.samsung.com>
The problem:

In case the initial style of a -webkit-transition is not defined, a default
RenderStyle object
is used instead. This object has a StyleBoxData member called m_box, and its
maxHeight
attribute is needed while calculating the frames of the animation, namely
blending the properties
of the initial and final styles. But since the default StyleBoxData has an
'Undefined' maximum
height, the blending is not possible. (Blending calculates percentage values
and maxHeight
is supposed to define 100% of the vertical length.)

My recommendation is an early return before RenderElement::setAnimatableStyle,
so we could
ignore the transition in similar malformed cases (which would provide no
sensible output anyway).

Another solution could be setting the maxHeight of the default RenderStyle to
'Fixed' value,
which normally gets updated later. This could be done by
RenderStyle::initialMaxSize()
if it returned with Length(Fixed), as its sibling function
RenderStyle::initialMinSize()
and every similar neighbouring functions do.

Alternatively, we could set the maxHeight member of  the initial style to the
maxHeight value
of the final style in similar cases. It might seem like a workaround, though.


More information about the webkit-reviews mailing list