Created attachment 398842 [details] Rendering examples It is possible to use: filter: url(#svg-filter-desaturate); but not: filter: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cfilter%20id%3D%22desaturate%22%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22/%3E%3C/filter%3E%3C/svg%3E#desaturate); } The use case this would enable is to define filters inside CSS stylesheets. This would give developers access to a very powerful filter system they wouldn't have otherwise. For example, you could "colorize" with feColorMatrix. Works on Firefox 76 and Chrome 81. Here's a full example: https://codepen.io/foobarquux/pen/JjddKZw
<rdar://problem/63039570>
Probably RenderSVGInline::requiresLayer() const final { return false; }
Simon Fraser, do you think this could be an easy fix?
I am able to reproduce this bug in Safari 15.6 on macOS 12.5 using attached test case and it does show these difference compared to other browsers: Desaturate, encoded as base64 ----> RED Desaturate, encoded with "escape()" ----> RED Turn white to green, encoded with "escape()" ---> Missing completely. Just wanted to update latest testing results. Thanks!