Created attachment 64759 [details] Test case for getPointAtLength bug For paths closed with the closepath ("z") command, getPointAtLength returns incorrect values for points along the line segment which closes the path. I.e. for a path like "M x0,y0 x1,y1 x2,y2 x3,y3 z", getPointAtLength will return incorrect values for the implied line from (x3,y3) to (x0,y0). Explicitly closed paths, like "M x0,y0 x1,y1 x2,y2 x3,y3 x0,y0", are handled correctly.
Created attachment 64814 [details] Reduced test case I would say, that we set the points in http://trac.webkit.org/browser/trunk/WebCore/platform/graphics/PathTraversalState.cpp#L163 wrong. The current point should be the start point of the path: m_current = m_control1 = m_control2 = m_start;
This also influences animations on animateTransform for the z-segment. The animated object has a wrong position for this segment.
Created attachment 65606 [details] Patch
Comment on attachment 65606 [details] Patch Great fix, r=me.
Comment on attachment 65606 [details] Patch Clearing flags on attachment: 65606 Committed r66188: <http://trac.webkit.org/changeset/66188>
All reviewed patches have been landed. Closing bug.
http://trac.webkit.org/changeset/66188 might have broken Qt Linux Release
QtPainterPath makes several optimizations like closing paths, eliminate redundant paths. Thats why DRT results for Paths differ from the other platforms that much. And it's the reason, why this patch fails on Qt. Qt fails anyway, with or without this patch. I'll upload the patch again, with better results for the other bots, but a long term goal is to do all the calculation without the graphic libraries but with the SVGPathByteStream. That way we have common results across all platforms.
Created attachment 65697 [details] Patch
Comment on attachment 65697 [details] Patch r=me. Needs updates on most platforms...
Comment on attachment 65697 [details] Patch Clearing flags on attachment: 65697 Committed r66208: <http://trac.webkit.org/changeset/66208>
Committed r66214: <http://trac.webkit.org/changeset/66214>
http://trac.webkit.org/changeset/66214 might have broken Leopard Intel Release (Tests)