v150 · Security · Rendering
Sandbox Filter Test
Apply CSS filters to a container that holds both a same-origin frame and a sandboxed frame. Chrome 150 blocks SVG filters (like url(#displace)) on cross-origin and sandboxed iframes — CSS shorthand filters like blur() still apply. See which filters reach each frame.
Filter × frame type matrix
| filter type | same-origin iframe | cross-origin iframe | sandboxed iframe |
|---|---|---|---|
| CSS shorthand (blur, grayscale, …) | applies ✓ | applies ✓ | applies ✓ |
| SVG filter via url(#id) | applies ✓ | blocked ✗ (Chrome 150) | blocked ✗ (Chrome 150) |
| SVG filter via url(#id) on plugin (PDF) | blocked ✗ (Chrome 150) | blocked ✗ (Chrome 150) | blocked ✗ (Chrome 150) |
why SVG filters were blocked
SVG filters — particularly <feDisplacementMap> — could visually distort cross-origin iframes, making phishing overlays and clickjacking attacks harder to detect. The lyra.horse demo in 2024 showed how a displacement filter on an embedded bank iframe could shift the frame content to make a malicious overlay pixel-perfect. Chrome 150 blocks all SVG filter effects at the boundary of cross-origin and sandboxed frames. CSS shorthand filters (blur(), brightness(), etc.) that can't be used for pixel-accurate manipulation are unaffected.
<!-- Safe: blur() on cross-origin iframe is fine -->
<div style="filter: blur(4px)">
<iframe src="https://other-origin.example/"></iframe>
</div>
<!-- Blocked: SVG filter on cross-origin iframe (Chrome 150) -->
<div style="filter: url(#my-displacement)">
<iframe src="https://other-origin.example/"></iframe>
<!-- SVG filter is stripped; iframe renders unfiltered -->
</div>