[webkit-dev] Support for SVG preserveAspectRatio in <img>

Leif Arne Storset lstorset at opera.com
Wed Feb 3 05:12:09 PST 2010

Eric Seidel <eric at webkit.org> skreiv Tue, 02 Feb 2010 21:04:33 +0100

> Definitely a bug.
> Some of these are on file, some are not:
> http://webkit.org/quality/reporting.html

Thanks, Eric and Dean, for your feedback. I have reported bug 34521 [1].  
Hopefully I will be able to host the test case soon. Best of luck on  
implementation! Feel free to ask me if you have questions or concerns.

-Leif Arne

[1] https://bugs.webkit.org/show_bug.cgi?id=34521

> On Tue, Feb 2, 2010 at 8:17 AM, Leif Arne Storset <lstorset at opera.com>  
> wrote:
>> Hello,
>> While doing some SVG-related work over here I discovered that WebKit's
>> rendering of SVG in <img> tags differs from Opera's. Since WebKit and
>> Opera to my knowledge are the only engines that currently support SVG in
>> <img> we thought it would be worthwhile to make sure we are compatible.
>> As far as I can tell from the latest nightly builds (and the latest  
>> Chrome
>> release on Linux), WebKit will render an SVG in <img> much like a  
>> bitmap:
>> it will resolve the width and height of the image and stretch it to fill
>> the content box. It will respect any viewbox (presumably synthesizing  
>> one
>> if it is missing), but preserveAspectRatio [1] seems not to be applied  
>> to
>> an SVG in <img>, and the default rendering (whether there is a viewbox  
>> or
>> not) is as if preserveAspectRatio="none".
>> Opera (Presto engine) will also resolve image dimensions and synthesize
>> missing viewboxes, and will synthesize a viewBox if it can, as outlined
>> in SVG WG ISSUE-2258 [2], and applies preserveAspectRatio as specified  
>> in
>> SVG 1.1 (note that pAR has a default value 'xMidYMid meet'). The viewBox
>> (whether specified or synthetic) are used together with pAR when  
>> rendering
>> the SVG into the viewport established by the <img> element.
>> The attached images and test case illustrate the two renderings.
>> A quick Google search of webkit.org revealed little on  
>> preserveAspectRatio
>> except a reference to a 2008 bug in SVGImageElement. However, for
>> <svg:image> (that is: <image> elements inside of an <svg>), pAR seems to
>> be applied as per the spec.
>> We believe that not applying the pAR on svg in <img> means that WebKit
>> has invalid rendering behaviour according to the SVG 1.1 specification.
>> To enhance cross-browser compatibility it would be good if WebKit also
>> considered synthesizing viewBoxes as outlined in [2], as this makes it
>> easier to reuse existing svg content created by svg editors such as
>> Inkscape (such content most often has a width and height, but lacks a
>> viewBox).
>> I hope you find these recommendations useful. Please let me know if I  
>> can
>> be of further assistance. If desired I can file a bug in your issue
>> tracker.
>> --
>> Leif Arne Storset
>> Layout developer, Opera Software
>> [1] http://www.w3.org/TR/SVG11/coords.html#PreserveAspectRatioAttribute
>> [2] http://www.w3.org/Graphics/SVG/WG/track/issues/2258
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Leif Arne

More information about the webkit-dev mailing list