demo · v138

Local Network Access decision tree

Enter your page's origin and a target URL. The simulator runs Chrome 138's decision logic — does the request go to a more-private network, does it need a permission prompt, can it use targetAddressSpace shortcut, and what does the preflight request look like?

To actually exercise this against a real device, enable chrome://flags/#local-network-access. The simulator below mirrors Chrome 138's spec rules in-page.
stepvalue

the preflight

// 138+: requests crossing a network boundary must carry this:
fetch("http://192.168.1.10/", {
  targetAddressSpace: "private", // declares the user intent
}).then(r => r.text());

// On the wire, the browser sends a preflight first:
//   OPTIONS / HTTP/1.1
//   Access-Control-Request-Local-Network: true
//
// Server must respond with:
//   Access-Control-Allow-Local-Network: true
// or the real request is blocked.

see also