← back to v157 · disallow-spaces-in-non-file-url-hosts
conformance · v157
v157 · disallow-spaces-in-non-file-url-hosts — conformance probe
8 assertions drawn from the spec. Each is a single contract the spec text makes. Pass/fail reflects what this browser executed; blocked means the contract was not run because it needs user mediation, hardware, or another unavailable precondition. Open the page in Chrome stable / canary / Firefox / Safari to compare.
0
pass
0
fail
0
blocked
8
total
| id | contract | kind | verdict | detail |
|---|---|---|---|---|
space-in-host-rejected |
U+0020 SPACE is a forbidden host code point, so a non-file URL whose host contains one must fail to parse. spec ↗ | throws | … | |
space-in-websocket-host-rejected |
WebSocket URLs go through the same host parser, so a space in a wss:// host is rejected too. This is the Interop 2024 WebSocket case that motivated the change. spec ↗ | throws | … | |
space-in-file-host-allowed |
file:// is exempt: a space in a file URL's host still parses, because file paths legitimately contain spaces. spec ↗ | script | … | |
space-in-path-encoded-not-rejected |
A space in the path is legal and serialises to %20. The change is scoped to the host and must not affect path parsing. spec ↗ | script | … | |
space-in-query-round-trips |
A space in the query is legal and decodes back to a space through searchParams. spec ↗ | script | … | |
percent-encoded-space-in-host-parses |
%20 is a legal host character, so a percent-encoded space still parses. Percent-encoding is therefore not a fix for a host with a space in it: it produces a valid host that does not resolve. spec ↗ | script | … | |
tab-removed-before-host-parsing |
Tab, LF and CR are stripped from the input before host parsing begins, so they never reach the host and never cause a rejection: 'https://exa\u0009mple.com/' parses with the host example.com. spec ↗ | script | … | |
pipe-in-host-rejected |
U+007C VERTICAL LINE has always been a forbidden host code point; it anchors the space assertions against a rule that predates this change. spec ↗ | throws | … |