[Webkit-unassigned] [Bug 77020] [Qt]: SVG Bounding boxes are wrong for zero-length subpaths

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 26 11:55:02 PST 2012


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


Stephen Chenney <schenney at chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|SVG Bounding boxes are      |[Qt]: SVG Bounding boxes
                   |wrong on Qt and Chromium    |are wrong for zero-length
                   |for zero-length subpaths    |subpaths
         AssignedTo|schenney at chromium.org       |webkit-unassigned at lists.web
                   |                            |kit.org




--- Comment #2 from Stephen Chenney <schenney at chromium.org>  2012-01-26 11:55:02 PST ---
The problematic test cases are:
LayoutTests/svg/W3C-SVG-1.1-SE/painting-control-04-f.svg
LayoutTests/svg/custom/zero-path-square-cap-rendering.svg
LayoutTests/svg/stroke/zero-length-arc-linecaps-rendering.svg

and probably

LayoutTests/svg/stroke/*

The problem appears to be due to the interaction between platform/gaphics/qt/PathQt.cpp and RenderSVGShape::updateCachedBoundaries(). The underlying behavior of Qt's QPainterPath implementation may be to blame. Regardless, this issue seems to be Qt only. Not Chromium or Mac.

Working through RenderSVGShape::updateCachedBoundaries() for the second path element, looking at how it computes m_repaintBoundingBox, which is the thing reported by DumpRenderTree:
- The paths in question should not be empty, and according to comments in PathQt.cpp, they will not be. The comment may be incorrect.
- The path should be detected as being of zero subpath length, triggering the uniting of the (initially zero sized bound) with the zero length stroke rectangle bound. Check that the offending paths actually have been detected as zero length.
- Then marker bounds are added, which cannot make the path smaller, so probably is not the issue.
- Then the repaint rect is set, which should be the zero-length-stroke bound size.
- The only other way it could go wrong is if the resources intersection decides it has a zero sized clip or something.

Hope that helps whomever comes to look at this.

-- 
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