If you do <svg style="display: none"> on the outermost SVG element we ignore it which is wrong. I tried to fix this, but it's hard since we depend on the SVGDocument::rootElement() having a renderer. Instead SVG should use a RenderView like HTML for the thing that must always exist.
Created attachment 176422 [details] Reduction
This is a side effect of the fact that SVG needs renderers for content hat the SVG spec defines as display:none. Examples include filters, masks, patterns, anything in defs elemens, etc. Mozilla have apparently also had issue with this: https://bugzilla.mozilla.org/show_bug.cgi?id=376027 We should still fix it though, as it should be possible to put display:none on the root SVG and have nothing display.
Safari and Chrome fail this test. Firefox handles it properly.
<rdar://problem/97098400>