WPT
wpt / x-frame-options / multiple.html
Spec: https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-x-frame-options-header ↗
Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 110/110 | 110/110 | 110/110 | 110/110 | 110/110 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| `SAMEORIGIN;SAMEORIGIN` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;sameOrigin` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `sameOrigin;SAMEORIGIN` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,sameOrigin` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `sameOrigin,SAMEORIGIN` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;sameOrigin` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `sameOrigin;SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,sameOrigin` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `sameOrigin,SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;"DENY"` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"DENY";SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,"DENY"` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"DENY",SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;"DENY"` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"DENY";SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,"DENY"` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"DENY",SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,(the empty string)` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),SAMEORIGIN` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN;` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `SAMEORIGIN,(the empty string)` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),SAMEORIGIN` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;"SAMEORIGIN"` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"SAMEORIGIN";DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,"SAMEORIGIN"` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"SAMEORIGIN",DENY` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY;"SAMEORIGIN"` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"SAMEORIGIN";DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `DENY,"SAMEORIGIN"` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `"SAMEORIGIN",DENY` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,(the empty string)` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),ALLOWALL` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL;` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `ALLOWALL,(the empty string)` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),ALLOWALL` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `allowAll;INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;allowAll` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `allowAll,INVALID` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,allowAll` blocks same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `allowAll;INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;allowAll` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `allowAll,INVALID` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,allowAll` blocks cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;INVALID` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;INVALID` allows cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);INVALID` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,(the empty string)` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),INVALID` allows same-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID;` allows cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string);INVALID` allows cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `INVALID,(the empty string)` allows cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |
| `(the empty string),INVALID` allows cross-origin framing | PASS | PASS | PASS | PASS | PASS | — |