← Chrome 152 reference

v152 · shipped · security · http header

Connection Allowlists

A new HTTP response header — Connection-Allowlist — that lets a server declare exactly which external endpoints its page is permitted to connect to. The browser enforces this allowlist at the network level, blocking subresource fetches, navigations, redirects, and WebSocket connections that don't match, before they're made.

Shipped in Chrome 152 Connection Allowlists ships enabled by default in Chrome 152. It was in origin trial from Chrome 148 through Chrome 151. To test locally on older versions: chrome://flags/#connection-allowlist.

at a glance

Shipped inChrome 152 (Enabled by default)
Origin trialChrome 148 – 151 (concluded)
StandardsWICG Proposal
SpecWICG Connection Allowlists spec
ExplainerWICG/connection-allowlists — GitHub
ChromeStatus5175745573945344 — Connection Allowlists

why it exists

Content Security Policy's connect-src directive can restrict where a page connects, but it is set by the server as a policy header and cannot easily be updated per-response or composed with dynamic endpoint lists. Connection Allowlists takes a complementary approach: the server sends a structured list of permitted URL patterns in the Connection-Allowlist response header, and the browser evaluates every outgoing connection — subresource fetches, navigations, redirects, prefetch, preload, WebSocket connections, and history.back()/history.forward() navigations — against that list before the connection is made. Connections that don't match are blocked at the network level. A report-only variant (Connection-Allowlist-Report-Only) lets developers audit their connection surface before enforcing it.

Source: WICG Connection Allowlists spec, blink-dev Intent to Experiment, Chrome for Developers blog, May 2026.

the header

Connection-Allowlist

The header value is a Structured Field list containing a single inner list. Each element is either the token response-origin (dynamically adds the response's own origin) or a quoted string matching the URLPattern syntax for absolute URLs.

ElementMeaning
response-originDynamically permits the origin from which the current response was served. Useful for same-origin requests without hard-coding the origin.
"https://api.example.com/*"A quoted URLPattern string. Permits any URL under api.example.com.
"https://*.cdn.example"Wildcard subdomain pattern.

Optional report-to parameter

Append ; report-to=<endpoint-name> to route violation reports to a Reporting API endpoint.

Source: WICG Connection Allowlists spec, blink-dev Intent to Experiment, May 2026.

examples

Basic allowlist — same origin plus a CDN

# Server response header
Connection-Allowlist: (response-origin "https://cdn.example.com/*")

Multiple trusted endpoints

Connection-Allowlist: (response-origin "https://api.example.com/*" "https://*.assets.example.com")

Report-only mode (audit without blocking)

Connection-Allowlist-Report-Only: ("https://api.example.com/*" response-origin); report-to=security-endpoint

Express / Node.js middleware snippet

app.use((req, res, next) => {
  res.setHeader(
    'Connection-Allowlist',
    '(response-origin "https://api.example.com/*" "https://fonts.googleapis.com/*")'
  );
  next();
});

Origin trial token

<meta http-equiv="origin-trial" content="YOUR_TOKEN_HERE">

Obtain a token at developer.chrome.com/origintrials — search for "Connection Allowlists".

Source: WICG Connection Allowlists spec and blink-dev, May 2026.

what the allowlist covers

At the start of the origin trial the following outgoing connections are checked against the allowlist:

Source: blink-dev Intent to Experiment — Connection Allowlists, May 2026.

browser support

BrowserSupport
Chrome 148 – 151Origin trial (flag: #connection-allowlist)
Chrome 152+Enabled by default
FirefoxNo position
SafariNo position
Source: chromestatus.com feature page, May 2026.

see also