From 6c5e57a2ad0cbdc6158c38113e158ba5c881f384 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Tue, 24 Mar 2026 15:30:50 +0000 Subject: [PATCH 1/4] Chrome 142-145 support for local network access features --- api/Permissions.json | 112 +++++++++++++++++++++++++++ api/Request.json | 62 ++++++++++++--- api/_globals/fetch.json | 49 ++++++++++++ http/headers/Permissions-Policy.json | 109 ++++++++++++++++++++++++++ 4 files changed, 323 insertions(+), 9 deletions(-) diff --git a/api/Permissions.json b/api/Permissions.json index d72f8ecacc47cf..59592665e3e424 100644 --- a/api/Permissions.json +++ b/api/Permissions.json @@ -438,6 +438,118 @@ } } }, + "permission_local-network": { + "__compat": { + "description": "`local-network` permission", + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-local-network", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "145" + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, + "permission_local-network-access": { + "__compat": { + "description": "`local-network-access` permission", + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-local-network-access", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "142", + "notes": "Superceded by the `local-network` and `loopback-network` permissions." + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, + "permission_loopback-network": { + "__compat": { + "description": "`loopback-network` permission", + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-loopback-network", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "145" + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, "permission_magnetometer": { "__compat": { "description": "`magnetometer` permission", diff --git a/api/Request.json b/api/Request.json index 69a7b3a07e3c00..778b69669e0c41 100644 --- a/api/Request.json +++ b/api/Request.json @@ -434,6 +434,55 @@ } } }, + "init_targetAddressSpace_parameter": { + "__compat": { + "description": "`init.targetAddressSpace` parameter", + "spec_url": "https://wicg.github.io/local-network-access/#dom-requestinit-targetaddressspace", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": [ + { + "version_added": "142" + }, + { + "version_added": "124", + "version_removed": "138" + } + ], + "chrome_android": "mirror", + "deno": { + "version_added": false + }, + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, "request_body_readablestream": { "__compat": { "description": "Send `ReadableStream` in request body", @@ -1731,14 +1780,7 @@ "support": { "chrome": [ { - "version_added": "138", - "flags": [ - { - "type": "preference", - "name": "#local-network-access-check", - "value_to_set": "Enabled" - } - ] + "version_added": "142" }, { "version_added": "124", @@ -1765,7 +1807,9 @@ }, "safari_ios": "mirror", "samsunginternet_android": "mirror", - "webview_android": "mirror", + "webview_android": { + "version_added": false + }, "webview_ios": "mirror" }, "status": { diff --git a/api/_globals/fetch.json b/api/_globals/fetch.json index 228a75cec9470c..8bd3751889a72b 100644 --- a/api/_globals/fetch.json +++ b/api/_globals/fetch.json @@ -490,6 +490,55 @@ "deprecated": false } } + }, + "init_targetAddressSpace_parameter": { + "__compat": { + "description": "`init.targetAddressSpace` parameter", + "spec_url": "https://wicg.github.io/local-network-access/#dom-requestinit-targetaddressspace", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": [ + { + "version_added": "142" + }, + { + "version_added": "124", + "version_removed": "138" + } + ], + "chrome_android": "mirror", + "deno": { + "version_added": false + }, + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } } } } diff --git a/http/headers/Permissions-Policy.json b/http/headers/Permissions-Policy.json index 0f2c710ddd0937..59e0724a5bcf39 100644 --- a/http/headers/Permissions-Policy.json +++ b/http/headers/Permissions-Policy.json @@ -882,6 +882,115 @@ } } }, + "local-network": { + "__compat": { + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-local-network", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "145" + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, + "local-network-access": { + "__compat": { + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-local-network-access", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "142", + "notes": "Superceded by the `local-network` and `loopback-network` permissions." + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, + "loopback-network": { + "__compat": { + "spec_url": "https://wicg.github.io/local-network-access/#permissiondef-loopback-network", + "tags": [ + "web-features:local-network-access" + ], + "support": { + "chrome": { + "version_added": "145" + }, + "chrome_android": "mirror", + "edge": "mirror", + "firefox": { + "version_added": false + }, + "firefox_android": "mirror", + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": { + "version_added": false + }, + "webview_ios": "mirror" + }, + "status": { + "experimental": true, + "standard_track": true, + "deprecated": false + } + } + }, "magnetometer": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Permissions-Policy/magnetometer", From db71aef6d542281dedd954c043c0a7b51e4d3748 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Tue, 31 Mar 2026 11:54:39 +0100 Subject: [PATCH 2/4] Update api/_globals/fetch.json Co-authored-by: Claas Augner <495429+caugner@users.noreply.github.com> --- api/_globals/fetch.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/api/_globals/fetch.json b/api/_globals/fetch.json index 8bd3751889a72b..88b4ec32c06fd3 100644 --- a/api/_globals/fetch.json +++ b/api/_globals/fetch.json @@ -502,10 +502,6 @@ "chrome": [ { "version_added": "142" - }, - { - "version_added": "124", - "version_removed": "138" } ], "chrome_android": "mirror", From 9b1569b70ee0e1c515da613bc4dff78e022e6ffc Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Tue, 31 Mar 2026 11:54:51 +0100 Subject: [PATCH 3/4] Update api/Request.json Co-authored-by: Claas Augner <495429+caugner@users.noreply.github.com> --- api/Request.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/api/Request.json b/api/Request.json index 778b69669e0c41..54d8b52f612a6b 100644 --- a/api/Request.json +++ b/api/Request.json @@ -445,10 +445,6 @@ "chrome": [ { "version_added": "142" - }, - { - "version_added": "124", - "version_removed": "138" } ], "chrome_android": "mirror", From df7b132bdde4a8304305147136127c774c4ccf77 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Tue, 31 Mar 2026 12:04:35 +0100 Subject: [PATCH 4/4] add changes --- api/Permissions.json | 2 +- api/Request.json | 24 ++++++------------------ api/_globals/fetch.json | 12 +++--------- http/headers/Permissions-Policy.json | 2 +- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/api/Permissions.json b/api/Permissions.json index 59592665e3e424..992be12c86f1b9 100644 --- a/api/Permissions.json +++ b/api/Permissions.json @@ -485,7 +485,7 @@ "support": { "chrome": { "version_added": "142", - "notes": "Superceded by the `local-network` and `loopback-network` permissions." + "notes": "Superceded by the `local-network` and `loopback-network` permissions; acts as an alias for both." }, "chrome_android": "mirror", "edge": "mirror", diff --git a/api/Request.json b/api/Request.json index 778b69669e0c41..c77e5c36f02cd1 100644 --- a/api/Request.json +++ b/api/Request.json @@ -442,15 +442,9 @@ "web-features:local-network-access" ], "support": { - "chrome": [ - { - "version_added": "142" - }, - { - "version_added": "124", - "version_removed": "138" - } - ], + "chrome": { + "version_added": "142" + }, "chrome_android": "mirror", "deno": { "version_added": false @@ -1778,15 +1772,9 @@ "web-features:local-network-access" ], "support": { - "chrome": [ - { - "version_added": "142" - }, - { - "version_added": "124", - "version_removed": "138" - } - ], + "chrome": { + "version_added": "142" + }, "chrome_android": "mirror", "deno": { "version_added": false diff --git a/api/_globals/fetch.json b/api/_globals/fetch.json index 8bd3751889a72b..ed95184a6305a5 100644 --- a/api/_globals/fetch.json +++ b/api/_globals/fetch.json @@ -499,15 +499,9 @@ "web-features:local-network-access" ], "support": { - "chrome": [ - { - "version_added": "142" - }, - { - "version_added": "124", - "version_removed": "138" - } - ], + "chrome": { + "version_added": "142" + }, "chrome_android": "mirror", "deno": { "version_added": false diff --git a/http/headers/Permissions-Policy.json b/http/headers/Permissions-Policy.json index 59e0724a5bcf39..b0f94b1b885d26 100644 --- a/http/headers/Permissions-Policy.json +++ b/http/headers/Permissions-Policy.json @@ -927,7 +927,7 @@ "support": { "chrome": { "version_added": "142", - "notes": "Superceded by the `local-network` and `loopback-network` permissions." + "notes": "Superceded by the `local-network` and `loopback-network` permission policies; acts as an alias for both." }, "chrome_android": "mirror", "edge": "mirror",