Bug 182172 - SVG2: WebKit incorrectly disregards "width" and "height" attributes on SVG <symbol> element
Summary: SVG2: WebKit incorrectly disregards "width" and "height" attributes on SVG <s...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: Safari 11
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: BrowserCompat, FromImplementor, InRadar
Depends on:
Blocks: 191292
  Show dependency treegraph
 
Reported: 2018-01-26 09:41 PST by Daniel Holbert
Modified: 2022-08-08 13:42 PDT (History)
7 users (show)

See Also:


Attachments
testcase 1 (same as jsfiddle) (880 bytes, text/html)
2018-01-26 09:50 PST, Daniel Holbert
no flags Details
reduced test case (202 bytes, image/svg+xml)
2019-11-05 09:04 PST, Said Abou-Hallawa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Holbert 2018-01-26 09:41:51 PST
What steps will reproduce the problem?
(1) Visit https://jsfiddle.net/mca17zyk/

What is the expected result?
 Small purple rectangle and square. (Each 20px tall.)

What happens instead?
 The square is huge.

Please use labels and text to provide additional information.
Per SVG2, the square (really, the <use>-generated <svg> element that gets filled with a 100%-sized purple rect) should take its width/height attributes from the <symbol> element that it cloned.  That <symbol> element has width=20 height=20, so its <svg> clone should as well.

The rectangle (the first purple thing in the testcase) works correctly because it explicitly overrides the width and height by setting those attributes on the use element itself. But if they're unset on <use>, then we should use the ones from the <symbol>.

WebKit's behavior here would be correct per SVG 1.1:
https://www.w3.org/TR/SVG11/struct.html#SymbolElement

...but it's incorrect per SVG 2:
https://svgwg.org/svg2-draft/struct.html#SymbolElement

The specific commit in the SVG 2 spec repo is here:
https://github.com/w3c/svgwg/commit/ca0f76bf83825505e17d8b69ead26b01d3bc75dc#diff-6e6915b15fe92e713aecbcc7786991f6R449
That commit added x,y,width,height to <symbol>, and added prose saying they should have the same effect on clones-of-<symbol> as they have on an <svg> element.


Firefox gives "Expected Results" here.
Comment 1 Daniel Holbert 2018-01-26 09:50:57 PST
Created attachment 332378 [details]
testcase 1 (same as jsfiddle)
Comment 3 Michal Vašíček 2019-11-04 13:53:28 PST
This was already fixed in Chrome in March 2019, any updates on this?
Comment 4 Radar WebKit Bug Importer 2019-11-04 15:14:15 PST
<rdar://problem/56882593>
Comment 5 Said Abou-Hallawa 2019-11-05 09:04:51 PST
Created attachment 382828 [details]
reduced test case