v147 · Security · WebTransport
Compatibility Lab
Detects WebTransport availability and classifies page origin context. Shows which WebTransport connection targets require LNA opt-in headers. Provides the server-side HTTP/3 SETTINGS parameter pattern for granting private network access to WebTransport sessions.
API probes
WebTransport LNA enforcement matrix
| Page origin | WebTransport target | Chrome 147 result |
|---|---|---|
| Public (https://example.com) | https://localhost:4433 | BLOCKED — LNA opt-in required |
| Public (https://example.com) | https://192.168.1.x:4433 | BLOCKED — LNA opt-in required |
| Private origin | https://192.168.1.x:4433 | ALLOWED — same network tier |
| Public (https://example.com) | https://api.example.com | ALLOWED — public to public |
Live context probe
WebTransport API + LNA context check
Click "Run probe" to inspect WebTransport context…
Server-side opt-in pattern
/* WebTransport LNA opt-in (server-side) */
/* WebTransport uses HTTP/3 (QUIC). The LNA opt-in is conveyed
via an HTTP/3 SETTINGS parameter, NOT an HTTP OPTIONS preflight.
The server must send the HTTP/3 SETTINGS frame with:
SETTINGS_PRIVATE_NETWORK_ACCESS_PERMISSION = 1
In aioquic (Python):
config = QuicConfiguration(is_client=False)
config.settings = {'private_network_access_permission': 1}
In Go (quic-go):
settings := &webtransport.Settings{
EnablePrivateNetworkAccess: true,
}
*/
/* Client — feature detect and connect */
async function connectPrivateWebTransport(url) {
if (!('WebTransport' in window)) {
throw new Error('WebTransport not available');
}
try {
const transport = new WebTransport(url);
await transport.ready;
return transport;
} catch (e) {
// LNA block → "Failed to connect to server" or similar
if (e.message.includes('private network') || e.message.includes('blocked')) {
throw new Error('LNA block: server needs SETTINGS_PRIVATE_NETWORK_ACCESS_PERMISSION');
}
throw e;
}
}
/* Detect if WebTransport is available */
const HAS_WT = 'WebTransport' in window;
console.log('WebTransport:', HAS_WT);
references
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗