RESOLVED FIXED 78165
Calling RenderBox::absoluteQuads on RenderSVGRoot returns incorrect values when zoom or viewbox is involved
https://bugs.webkit.org/show_bug.cgi?id=78165
Summary Calling RenderBox::absoluteQuads on RenderSVGRoot returns incorrect values wh...
Max Vujovic
Reported 2012-02-08 15:33:35 PST
RenderSVGRoot applies its local transform on itself when calling RenderBox::absoluteQuads. This happens in RenderSVGRoot::mapLocalToContainer. The call hierarchy is: RenderBox::absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const; RenderObject::localToAbsoluteQuad(const FloatQuad& quad, bool fixed = false, bool* wasFixed = 0) const RenderObject::localToContainerQuad(const FloatQuad&, RenderBoxModelObject* repaintContainer, bool fixed = false, bool* wasFixed = 0) const; RenderSVGRoot::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&, bool* wasFixed = 0) const; absoluteQuads takes in a quad with the size of the SVG root element in screen space, after page zoom. mapLocalToContainer then transforms the quad by RenderSVGRoot's m_localToBorderBoxTransform, which contains the zoom transform and the viewbox transform. See RenderSVGRoot::buildLocalToBorderBoxTransform. Note that both getBoundingClientRect and the inspector highlight on SVG root elements rely on absoluteQuads to do their job. Links to related bugs are under the "Blocks:" field.
Attachments
Nikolas Zimmermann
Comment 1 2012-03-19 08:29:05 PDT
Is this bug fixed as well, now?
Max Vujovic
Comment 2 2012-03-19 08:33:23 PDT
(In reply to comment #1) > Is this bug fixed as well, now? Yes, after bug 78037, this bug should be fixed.
Note You need to log in before you can comment on or make changes to this bug.