RESOLVED FIXED312584
REGRESSION (303819@main): Child with filter:blur() ignores border radius overflow clipping
https://bugs.webkit.org/show_bug.cgi?id=312584
Summary REGRESSION (303819@main): Child with filter:blur() ignores border radius over...
bugzilla.control543
Reported 2026-04-17 09:16:29 PDT
Created attachment 479145 [details] Reproduction with toggle to turn blur on/off Overview: CSS filter: blur() on a child element ignores `overflow: hidden` and `border-radius` on the parent container. Steps to Reproduce: 1) Create a parent element with border-radius and overflow: hidden 2) Apply filter:blur() to a child element that fills the parent Actual Results: The blur effect causes the child to paint outside the parent's rounded clipping region. The border radius appears to have no effect while the blur is active. Expected Results: The blurred child should be clipped to the parent's rounded corners, respecting overflow: hidden and border-radius. Hardware: MacOS 26.4.1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.4 Safari/605.1.15
Attachments
Reproduction with toggle to turn blur on/off (1.20 KB, text/html)
2026-04-17 09:16 PDT, bugzilla.control543
no flags
rendering in safari, firefox, chrome (122.89 KB, image/png)
2026-04-27 03:02 PDT, Karl Dubost
no flags
Safari 26.4 versus Technology Preview 242 (117.23 KB, image/png)
2026-04-27 05:31 PDT, bugzilla.control543
no flags
Static testcase (648 bytes, text/html)
2026-04-27 15:54 PDT, Simon Fraser (smfr)
no flags
Radar WebKit Bug Importer
Comment 1 2026-04-24 09:17:12 PDT
Karl Dubost
Comment 2 2026-04-27 03:02:57 PDT
Created attachment 479326 [details] rendering in safari, firefox, chrome It doesn't seem I can reproduce. Or maybe I do something wrong. Tested with Safari Technology Preview 242 Firefox Nightly 151 Chrome Canary 148
bugzilla.control543
Comment 3 2026-04-27 05:31:47 PDT
Created attachment 479328 [details] Safari 26.4 versus Technology Preview 242 Hey Karl, to reproduce you need to click the "Toggle blur" button to enable the `filter: blur(5px)` styling. The failure to clip the border radius only occurs when blurring is on. That being said, I'm no longer seeing the bug in Safari Technology Preview 242! It is clipping the border radius as I would expect.
Simon Fraser (smfr)
Comment 4 2026-04-27 15:54:45 PDT
Created attachment 479345 [details] Static testcase
Simon Fraser (smfr)
Comment 5 2026-04-27 16:07:30 PDT
This regressed somewhere in this range: 302000@main:305000@main
Simon Fraser (smfr)
Comment 6 2026-04-27 19:48:34 PDT
Regressed at 303819@main, but that may have just revealed issues introduced in 296844@main.
Simon Fraser (smfr)
Comment 7 2026-04-27 19:49:51 PDT
Replacing the filter with opacity (good rendering), the painting looks like: Save Clip (rect (58,50) width=300 height=300) BeginTransparencyLayer (opacity 0.80) Save (background) Clip (rect (58,50) width=300 height=300) ClipRoundedRect (rect (58,50) width=300 height=300 (top-left width=50 height=50) (top-right width=50 height=50) (bottom-left width=50 height=50) (bottom-right width=50 height=50)) FillCompositedRect (rect (58,50) width=300 height=300) (color #0000FF) (op source-over) (blendMode normal) Restore Save (foreground) Clip (rect (58,50) width=300 height=300) ClipRoundedRect (rect (58,50) width=300 height=300 (top-left width=50 height=50) (top-right width=50 height=50) (bottom-left width=50 height=50) (bottom-right width=50 height=50)) Restore Save (outline) Clip (rect (58,50) width=300 height=300) ClipRoundedRect (rect (58,50) width=300 height=300 (top-left width=50 height=50) (top-right width=50 height=50) (bottom-left width=50 height=50) (bottom-right width=50 height=50)) Restore EndTransparencyLayer Restore With filters, it's Save Clip (rect (58,50) width=300 height=300) SetStyle (style (radius width=9 height=9)) BeginTransparencyLayer (opacity 1.00) FillCompositedRect (rect (58,50) width=300 height=300) (color #0000FF) (op source-over) (blendMode normal) EndTransparencyLayer Restore The inner layer doesn't get clipRect.affectedByRadius() set.
Simon Fraser (smfr)
Comment 8 2026-04-29 14:20:21 PDT
EWS
Comment 9 2026-05-04 10:34:18 PDT
Committed 312531@main (34213f695a38): <https://commits.webkit.org/312531@main> Reviewed commits have been landed. Closing PR #63924 and removing active labels.
WebKit Commit Bot
Comment 10 2026-05-05 18:02:36 PDT
Re-opened since this is blocked by bug 314146
Simon Fraser (smfr)
Comment 11 2026-05-13 21:56:17 PDT
EWS
Comment 12 2026-05-14 15:34:24 PDT
Committed 313267@main (b8414eccb3b1): <https://commits.webkit.org/313267@main> Reviewed commits have been landed. Closing PR #64899 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.