WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
63230
SVGAnimation - keyTime value 1 never get animated
https://bugs.webkit.org/show_bug.cgi?id=63230
Summary
SVGAnimation - keyTime value 1 never get animated
Dirk Schulze
Reported
2011-06-22 23:58:12 PDT
Created
attachment 98317
[details]
SVG values animation with keytimes According to
http://www.w3.org/TR/SMIL3/smil-animation.html#adef-keyTimes
, the keyTime 1 should be the last time value of an animation. Right now it is the value right after that value. Short example: <rect width="100" height="100" fill="green"> <animate attributeName="width" values="100 ; 200 ; 300" calcMode="discrete" keyTimes="0;0.5;1" dur="6" fill="freeze"/> </rect> According to
http://www.w3.org/TR/SMIL3/smil-animation.html#animationNS-InterpolationIllus
the values should change at 2s, 4s and right before 6s. At the moment we take the last value at exactly 6s. According to the spec, it should not affect the animation, because 6s would be excluded. We should check for keyTime 1 and should calculate the last time value right before reaching the end. While FF, Opera and Batik end the animation with the value 300 for width, we end with 200. This affects at least one W3C test:
http://dev.w3.org/SVG/profiles/1.1F2/test/svg/animate-elem-31-t.svg
Attachments
SVG values animation with keytimes
(224 bytes, image/svg+xml)
2011-06-22 23:58 PDT
,
Dirk Schulze
no flags
Details
Patch
(5.95 KB, patch)
2011-06-26 10:49 PDT
,
Young Han Lee
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Young Han Lee
Comment 1
2011-06-26 10:49:44 PDT
Created
attachment 98633
[details]
Patch
Young Han Lee
Comment 2
2011-06-26 11:03:24 PDT
SVGAnimationElement::calculateKeyTimesIndex has to return the index n if the m_keyTimes[n] is the same with the given percent.
Dirk Schulze
Comment 3
2011-06-26 13:08:00 PDT
Comment on
attachment 98633
[details]
Patch Good catch! r=me
WebKit Review Bot
Comment 4
2011-06-26 14:26:42 PDT
Comment on
attachment 98633
[details]
Patch Clearing flags on attachment: 98633 Committed
r89774
: <
http://trac.webkit.org/changeset/89774
>
WebKit Review Bot
Comment 5
2011-06-26 14:26:46 PDT
All reviewed patches have been landed. Closing bug.
Dirk Schulze
Comment 6
2011-07-03 09:35:56 PDT
This seems to cause an ASSERTion on
http://dev.w3.org/SVG/profiles/1.1F2/test/svg/animate-elem-82-t.svg
Can you have a look please, Young Han?
Dirk Schulze
Comment 7
2011-07-03 09:43:08 PDT
ASSERTION FAILED: i < size() /Users/dirk/Downloads/webkit-trunk/WebKitBuild/Debug/JavaScriptCore.framework/PrivateHeaders/Vector.h(542) : const T& WTF::Vector<T, inlineCapacity>::at(size_t) const [with T = float, long unsigned int inlineCapacity = 0ul] 1 WTF::Vector<float, 0ul>::at(unsigned long) const 2 WTF::Vector<float, 0ul>::operator[](unsigned long) const 3 WebCore::SVGAnimationElement::currentValuesForValuesAnimation(float, float&, WTF::String&, WTF::String&) const 4 WebCore::SVGAnimationElement::updateAnimation(float, unsigned int, WebCore::SVGSMILElement*) 5 WebCore::SVGSMILElement::progress(WebCore::SMILTime, WebCore::SVGSMILElement*) 6 WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, double, WTF::String const&) 7 WebCore::SMILTimeContainer::timerFired(WebCore::Timer<WebCore::SMILTimeContainer>*) 8 WebCore::Timer<WebCore::SMILTimeContainer>::fired()
Young Han Lee
Comment 8
2011-07-03 18:22:10 PDT
(In reply to
comment #6
)
> This seems to cause an ASSERTion on
http://dev.w3.org/SVG/profiles/1.1F2/test/svg/animate-elem-82-t.svg
> > Can you have a look please, Young Han?
Yes, the assertion failure seems to be caused by my patch. I will upload a follow-up patch soon.
Young Han Lee
Comment 9
2011-07-04 08:25:17 PDT
Bug 63911
was opened for this regression.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug