<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>194815</bug_id>
          
          <creation_ts>2019-02-19 02:37:14 -0800</creation_ts>
          <short_desc>SVG Image intrinsic size should be used if css style size is &apos;auto&apos;</short_desc>
          <delta_ts>2025-02-09 18:19:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=493681</see_also>
    
    <see_also>https://github.com/web-platform-tests/wpt/pull/15464</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=250412</see_also>
          <bug_file_loc>http://wpt.live/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, BrowserCompat, InRadar, WPTImpact</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>bfulgham</cc>
    
    <cc>krit</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507644</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-19 02:37:14 -0800</bug_when>
    <thetext>&quot;The CSS width and height properties are used for sizing some SVG elements. Specifically, they are used to size ‘rect’, ‘svg’, ‘image’ and ‘foreignObject’. All of these elements have ‘width’ and ‘height’ presentation attributes. The properties are also used for laying out embedded elements from the HTML namespace. &quot;
&quot;The value auto for width and height on the ‘image’ element is calculated from the referenced image&apos;s intrinsic dimensions and aspect ratio, according to the CSS default sizing algorithm.&quot;
(https://www.w3.org/TR/SVG2/geometry.html#Sizing)

&quot; A value of zero for either width or height disables rendering of the element and its embedded content. The &apos;auto&apos; value for width or height is used to size the corresponding element automatically based on the intrinsic dimensions or intrinsic aspect ratio of the referenced resource. Computation of automatically-sized values follows the Default Sizing Algorithm defined for replaced elements in CSS layout [css-images-3]. In particular, when the referenced resource does not have an intrinsic size (such as an ‘iframe’ or an image types with no defined dimensions), it is assumed to have a width of 300px and a height of 150px.&quot;
(https://www.w3.org/TR/SVG2/embedded.html#Placement)

Essentially we should port Chromium&apos;s change:
https://codereview.chromium.org/2230963002
https://bugs.chromium.org/p/chromium/issues/detail?id=493681</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507658</commentid>
    <comment_count>1</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-19 06:31:06 -0800</bug_when>
    <thetext>Links from SVG drafts are:
https://svgwg.org/svg2-draft/single-page.html#geometry-Sizing
https://svgwg.org/svg2-draft/single-page.html#embedded-Placement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508504</commentid>
    <comment_count>2</comment_count>
      <attachid>362604</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-21 07:15:16 -0800</bug_when>
    <thetext>Created attachment 362604
Tentative Patch

Just trying to import https://chromium.googlesource.com/chromium/src.git/+/3c1a3822848d986337573cfaf2817c8a69417791 and align with Chromium. https://w3c-test.org/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html already times out without the patch applies, so there might be something wrong in WebKit&apos;s implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011932</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-02-08 15:15:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/122586485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2093365</commentid>
    <comment_count>4</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2025-02-09 18:19:45 -0800</bug_when>
    <thetext>https://chromium.googlesource.com/chromium/src.git/+/3c1a3822848d986337573cfaf2817c8a69417791 &amp; https://chromium.googlesource.com/chromium/src.git/+/b4a710486d530a98f09aa2ee5c9a25cae8c33015

^ Both need to be tackled.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362604</attachid>
            <date>2019-02-21 07:15:16 -0800</date>
            <delta_ts>2019-02-21 07:15:16 -0800</delta_ts>
            <desc>Tentative Patch</desc>
            <filename>0001-bug-194815.patch</filename>
            <type>text/plain</type>
            <size>4421</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA0MWEwMjI4MWNlNmRkOTdlNGRhNGRlY2M2NGUxMjlkYjgzODJmZmYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDIxIEZlYiAyMDE5IDE1OjUyOjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBidWcgMTk0ODE1CgotLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1h
Z2UuY3BwICB8IDUyICsrKysrKysrKysrLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCB8ICAyICsKIDIgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0
aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ltYWdlLmNwcAppbmRleCAyYzZmMzE3OGVlYi4uNDhhZTYzMTc2ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCkBA
IC02OCwzNyArNjgsNDcgQEAgU1ZHSW1hZ2VFbGVtZW50JiBSZW5kZXJTVkdJbWFnZTo6aW1hZ2VF
bGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHSW1hZ2VFbGVtZW50PihSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6ZWxlbWVudCgpKTsKIH0KIAorc3RhdGljIGZsb2F0IHJlc29sdmVX
aWR0aEZvclJhdGlvKGZsb2F0IGhlaWdodCwgY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljUmF0
aW8pCit7CisgICAgcmV0dXJuIGhlaWdodCAqIGludHJpbnNpY1JhdGlvLndpZHRoKCkgLyBpbnRy
aW5zaWNSYXRpby5oZWlnaHQoKTsKK30KKworc3RhdGljIGZsb2F0IHJlc29sdmVIZWlnaHRGb3JS
YXRpbyhmbG9hdCB3aWR0aCwgY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljUmF0aW8pIHsKKyAg
ICByZXR1cm4gd2lkdGggKiBpbnRyaW5zaWNSYXRpby5oZWlnaHQoKSAvIGludHJpbnNpY1JhdGlv
LndpZHRoKCk7Cit9CisKK0Zsb2F0U2l6ZSBSZW5kZXJTVkdJbWFnZTo6Y2FsY3VsYXRlT2JqZWN0
U2l6ZSgpIGNvbnN0Cit7CisgICAgYXV0byogY2FjaGVkSW1hZ2UgPSBpbWFnZVJlc291cmNlKCku
Y2FjaGVkSW1hZ2UoKTsKKyAgICBpZiAoIWNhY2hlZEltYWdlKQorICAgICAgICByZXR1cm4gbV9v
YmplY3RCb3VuZGluZ0JveC5zaXplKCk7CisKKyAgICBMYXlvdXRTaXplIGludHJpbnNpY1NpemUg
PSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIobnVsbHB0ciwgc3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgIGlmIChzdHlsZSgpLndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5bGUo
KS5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisKKyAg
ICBpZiAoc3R5bGUoKS5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0U2l6
ZShtX29iamVjdEJvdW5kaW5nQm94LndpZHRoKCksIHJlc29sdmVIZWlnaHRGb3JSYXRpbyhtX29i
amVjdEJvdW5kaW5nQm94LndpZHRoKCksIGludHJpbnNpY1NpemUpKTsKKworICAgIEFTU0VSVChz
dHlsZSgpLndpZHRoKCkuaXNBdXRvKCkpOworICAgIHJldHVybiBGbG9hdFNpemUocmVzb2x2ZVdp
ZHRoRm9yUmF0aW8obV9vYmplY3RCb3VuZGluZ0JveC5oZWlnaHQoKSwgaW50cmluc2ljU2l6ZSks
IG1fb2JqZWN0Qm91bmRpbmdCb3guaGVpZ2h0KCkpOworfQorCiBib29sIFJlbmRlclNWR0ltYWdl
Ojp1cGRhdGVJbWFnZVZpZXdwb3J0KCkKIHsKICAgICBGbG9hdFJlY3Qgb2xkQm91bmRhcmllcyA9
IG1fb2JqZWN0Qm91bmRpbmdCb3g7Ci0gICAgYm9vbCB1cGRhdGVkVmlld3BvcnQgPSBmYWxzZTsK
LQogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCgmaW1hZ2VFbGVtZW50KCkpOwog
ICAgIG1fb2JqZWN0Qm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoaW1hZ2VFbGVtZW50KCkueCgpLnZh
bHVlKGxlbmd0aENvbnRleHQpLCBpbWFnZUVsZW1lbnQoKS55KCkudmFsdWUobGVuZ3RoQ29udGV4
dCksIGltYWdlRWxlbWVudCgpLndpZHRoKCkudmFsdWUobGVuZ3RoQ29udGV4dCksIGltYWdlRWxl
bWVudCgpLmhlaWdodCgpLnZhbHVlKGxlbmd0aENvbnRleHQpKTsKIAotICAgIFVSTCBpbWFnZVNv
dXJjZVVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwoaW1hZ2VFbGVtZW50KCkuaW1hZ2VTb3Vy
Y2VVUkwoKSk7Ci0KLSAgICAvLyBJbWFnZXMgd2l0aCBwcmVzZXJ2ZUFzcGVjdFJhdGlvPW5vbmUg
c2hvdWxkIGZvcmNlIG5vbi11bmlmb3JtIHNjYWxpbmcuIFRoaXMgY2FuIGJlIGFjaGlldmVkCi0g
ICAgLy8gYnkgc2V0dGluZyB0aGUgaW1hZ2UncyBjb250YWluZXIgc2l6ZSB0byBpdHMgaW50cmlu
c2ljIHNpemUuCi0gICAgLy8gU2VlOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvc2luZ2xlLXBh
Z2UuaHRtbCwgNy44IFRoZSDigJhwcmVzZXJ2ZUFzcGVjdFJhdGlv4oCZIGF0dHJpYnV0ZS4KLSAg
ICBpZiAoaW1hZ2VFbGVtZW50KCkucHJlc2VydmVBc3BlY3RSYXRpbygpLmFsaWduKCkgPT0gU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19OT05FKSB7
Ci0gICAgICAgIGlmIChDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UgPSBpbWFnZVJlc291cmNlKCku
Y2FjaGVkSW1hZ2UoKSkgewotICAgICAgICAgICAgTGF5b3V0U2l6ZSBpbnRyaW5zaWNTaXplID0g
Y2FjaGVkSW1hZ2UtPmltYWdlU2l6ZUZvclJlbmRlcmVyKG51bGxwdHIsIHN0eWxlKCkuZWZmZWN0
aXZlWm9vbSgpKTsKLSAgICAgICAgICAgIGlmIChpbnRyaW5zaWNTaXplICE9IGltYWdlUmVzb3Vy
Y2UoKS5pbWFnZVNpemUoc3R5bGUoKS5lZmZlY3RpdmVab29tKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgaW1hZ2VSZXNvdXJjZSgpLnNldENvbnRhaW5lckNvbnRleHQocm91bmRlZEludFNpemUoaW50
cmluc2ljU2l6ZSksIGltYWdlU291cmNlVVJMKTsKLSAgICAgICAgICAgICAgICB1cGRhdGVkVmll
d3BvcnQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChz
dHlsZSgpLndpZHRoKCkuaXNBdXRvKCkgfHwgc3R5bGUoKS5oZWlnaHQoKS5pc0F1dG8oKSkKKyAg
ICAgICAgbV9vYmplY3RCb3VuZGluZ0JveC5zZXRTaXplKGNhbGN1bGF0ZU9iamVjdFNpemUoKSk7
CiAKICAgICBpZiAob2xkQm91bmRhcmllcyAhPSBtX29iamVjdEJvdW5kaW5nQm94KSB7Ci0gICAg
ICAgIGlmICghdXBkYXRlZFZpZXdwb3J0KQotICAgICAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLnNl
dENvbnRhaW5lckNvbnRleHQoZW5jbG9zaW5nSW50UmVjdChtX29iamVjdEJvdW5kaW5nQm94KS5z
aXplKCksIGltYWdlU291cmNlVVJMKTsKLSAgICAgICAgdXBkYXRlZFZpZXdwb3J0ID0gdHJ1ZTsK
KyAgICAgICAgVVJMIGltYWdlU291cmNlVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChpbWFn
ZUVsZW1lbnQoKS5pbWFnZVNvdXJjZVVSTCgpKTsKKyAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLnNl
dENvbnRhaW5lckNvbnRleHQoZW5jbG9zaW5nSW50UmVjdChtX29iamVjdEJvdW5kaW5nQm94KS5z
aXplKCksIGltYWdlU291cmNlVVJMKTsKICAgICAgICAgbV9uZWVkc0JvdW5kYXJpZXNVcGRhdGUg
PSB0cnVlOwogICAgIH0KLQotICAgIHJldHVybiB1cGRhdGVkVmlld3BvcnQ7CisgICAgcmV0dXJu
IG9sZEJvdW5kYXJpZXMuc2l6ZSgpICE9IG1fb2JqZWN0Qm91bmRpbmdCb3guc2l6ZSgpOwogfQog
CiB2b2lkIFJlbmRlclNWR0ltYWdlOjpsYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCmluZGV4IDJhMWM4YTE0YzZiLi5lYjNlNjUxMGYwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaApAQCAt
ODAsNiArODAsOCBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9y
bSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KICAgICB2b2lk
IGNhbGN1bGF0ZUltYWdlVmlld3BvcnQoKTsKIAorICAgIEZsb2F0U2l6ZSBjYWxjdWxhdGVPYmpl
Y3RTaXplKCkgY29uc3Q7CisKICAgICBib29sIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIDogMTsK
ICAgICBib29sIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwogICAgIEFmZmluZVRyYW5zZm9y
bSBtX2xvY2FsVHJhbnNmb3JtOwotLSAKMi4yMC4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>