NEW322588
SVG filters are not applied on `video` elements
https://bugs.webkit.org/show_bug.cgi?id=322588
Summary SVG filters are not applied on `video` elements
Ana Tudor
Reported 2026-08-26 03:57:42 PDT
Test setting a blur filter on video elements in one of two ways: 1) first, via an SVG `filter`: ``` <svg height="0" aria-hidden="true"> <filter id="f" color-interpolation-filters="sRGB" x="-1" y="-1" width="3" height="3"> <feGaussianBlur stdDeviation="8"/> </filter> </svg> ``` ``` blur: url(#f) ``` 2) then via a CSS `filter`: ``` filter: blur(8px) ``` Live on CodePen https://codepen.io/thebabydino/pen/NPpPdMy?editors=1100 **Expected result**: both video elements should be blurred just the same, whether it's via the SVG or the CSS `filter`. This is what happens in both Chrome and Firefox. **Safari result**: only the second video, the one having the blur applied via a CSS `filter` is actually blurred. I've only tested via Epiphany, but I've asked and it's been confirmed it happens in actual Safari as well https://mastodon.social/@anatudor/117161320943469504 This is an issue with SVG filters on `video` elements in general and not limited to blur. The same problem occurs when replacing the `feGaussianBlur` primitive with a `feColorMatrix` that should rotate the hue (`<feColorMatrix type="hueRotate" values="180"/>`) of the video or fully desaturate it (`<feColorMatrix type="saturate" values="0">`).
Attachments
testcase-probe.zip (443.13 KB, application/zip)
2026-08-31 02:11 PDT, Karl Dubost
no flags
Alexey Proskuryakov
Comment 1 2026-08-26 12:52:43 PDT
Thank you for the report! This appears to work in Safari, thus Linux specific indeed.
mail
Comment 2 2026-08-29 11:02:15 PDT
No - it doesn't, Alexey. Check again. Tested on MacOS 26.6.2: Safari Version 26.6.2 (21624.5.1.11.3) Safari TP Release 251 (WebKit 21626.1.4.19.1) Tested on IOS 26.6.1 Safari.
Ahmad Saleem
Comment 3 2026-08-29 19:48:57 PDT
*** Safari 27 Beta *** First video is not blurred. only second is blurred. *** Chrome Canary 154 & Firefox Nightly 157 *** Both videos blurred.
John Gardner
Comment 4 2026-08-29 19:51:50 PDT
(In reply to Alexey Proskuryakov from comment #1) > Thank you for the report! This appears to work in Safari, thus Linux > specific indeed. It doesn't work on my version of Safari, either. I'm seeing exactly what the OP reported. macOS version: 12.7.6 Safari version: 17.6 (17618.3.11.11.7, 17618) WebKit version: 605.1.15
Ahmad Saleem
Comment 5 2026-08-29 19:56:47 PDT
(In reply to gardnerjohng from comment #4) > (In reply to Alexey Proskuryakov from comment #1) > > Thank you for the report! This appears to work in Safari, thus Linux > > specific indeed. > > It doesn't work on my version of Safari, either. I'm seeing exactly what the > OP reported. > > macOS version: 12.7.6 > Safari version: 17.6 (17618.3.11.11.7, 17618) > WebKit version: 605.1.15 This definitely helped, I was trying to test whether it is some recent regression or not. This comment confirms that it is broken since Safari 17.6 at least.
Radar WebKit Bug Importer
Comment 6 2026-08-31 00:00:10 PDT
Karl Dubost
Comment 7 2026-08-31 02:10:42 PDT
Not specific to video. An accelerated WebGL canvas loses `filter: url()` the same way. A 2d canvas does not. General rule: any filter the compositor cannot run, on an element whose pixels the compositor owns, is silently dropped. Same cause, already filed: Bug 222757 iframe Bug 245510 backdrop-filter: url() Bug 274039 canvas child, no url() at all, two drop-shadow() trip the "drop-shadow must be last" rule Bug 297770 filter: url() ignored when backdrop-filter applied Maybe there are options to dance around the perf issues. There has been perf issues in the past because of this Bug 238707
Karl Dubost
Comment 8 2026-08-31 02:11:59 PDT
Created attachment 481220 [details] testcase-probe.zip To look at the different behaviors in different browsers.
Alexey Proskuryakov
Comment 9 2026-08-31 09:43:21 PDT
Yes, I misinterpreted what the live test was showing (didn't expect it to show any blurred videos when failing).
Note You need to log in before you can comment on or make changes to this bug.