[Webkit-unassigned] [Bug 45325] SVG Animate / Animate transform not animating after change via JS API

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 1 03:38:32 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=45325


Robin Qiu <robin.qiu at torchmobile.com.cn> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |robin.qiu at torchmobile.com.c
                   |                            |n




--- Comment #1 from Robin Qiu <robin.qiu at torchmobile.com.cn>  2010-11-01 03:38:32 PST ---
I think I have found the root cause.

When set attr, this will be called: 
void SVGAnimationElement::attributeChanged(Attribute* attr, bool preserveDecls)
{
    // Assumptions may not hold after an attribute change.
    m_animationValid = false;
    SVGSMILElement::attributeChanged(attr, preserveDecls);
}

m_animationValid is only changed in void SVGAnimationElement::startedActiveInterval(), and this function is only called once at animation start.

So, if any attrubite is changed after an animation get started, m_animationValid will always be false, as a result, SVGAnimationElement::updateAnimation() will return immediately.

I changed 
    m_animationValid = false;
to
    // m_animationValid = false;
and then, this test case can pass. Certainly, this is just a test.

I would like to listen to some comments on how to fix this bug. Add a flag such as m_attrChanged and re-calculate the m_animationValid in updateAnimation()? or modify any code in SVGSMILElement::progress()? 

Any comment is welcome.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list