From 086f88f267f61032df48f3a129394cabd6722e47 Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Fri, 17 Oct 2025 05:08:13 +1300 Subject: [PATCH 1/4] Bug 1988988 `proxy` API support for masque --- .../webextensions/api/proxy/proxyinfo/index.md | 11 +++++++---- files/en-us/mozilla/firefox/releases/145/index.md | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md index e746c1b6d3545cf..09f1f5b95a7617d 100644 --- a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md @@ -17,6 +17,7 @@ Values of this type are objects. They contain the following properties: - `"direct"`: don't proxy the request. If this value is given, all other properties of this object are ignored. However, this setting doesn't override any [proxy set by the user](https://support.mozilla.org/en-US/kb/connection-settings-firefox). Use {{WebExtAPIRef("proxy.settings")}} to check whether a manual proxy is being used and, if necessary, monitor those settings for changes using [`BrowserSetting.onChange`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/onChange). - `"http"`: HTTP proxy (or SSL CONNECT for HTTPS) - `"https"`: HTTP proxying over TLS connection to proxy + - `"masque"`: MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxy - `"socks"`: SOCKS v5 proxy - `"socks4"`: SOCKS v4 proxy @@ -24,10 +25,12 @@ Values of this type are objects. They contain the following properties: - : `string`. The hostname of the proxy server. Mandatory unless `type` is `"direct"`. - `port` - : `number`. The port number of the proxy server. Mandatory unless `type` is `"direct"`. -- `username` - - : `string`. Username for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). -- `password` - - : `string`. Password for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). +- `pathTemplate` + - : `string`. The path template. Must be set when the proxy type is `"masque"`, otherwise it's ignored. +- `username` {{optional_inline}} + - : `string`. Username for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). Must not be set when proxy is `"masque"`. +- `password` {{optional_inline}} + - : `string`. Password for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). Must not be set when proxy is `"masque"`. - `proxyDNS` - : `boolean`. If true, the proxy server is used to resolve certain DNS queries (only usable with `"socks4"` and `"socks"`). Defaults to `false`. - `failoverTimeout` diff --git a/files/en-us/mozilla/firefox/releases/145/index.md b/files/en-us/mozilla/firefox/releases/145/index.md index c88e00beb33e9da..a1e9734328f8649 100644 --- a/files/en-us/mozilla/firefox/releases/145/index.md +++ b/files/en-us/mozilla/firefox/releases/145/index.md @@ -75,6 +75,7 @@ Firefox 145 is the current [Nightly version of Firefox](https://www.firefox.com/ ## Changes for add-on developers - Cookies created with {{WebExtAPIRef("cookies.set()")}} are now validated, and invalid cookies are rejected. This change was implemented in Nightly only from Firefox 142. ([Firefox bug 1976509](https://bugzil.la/1976509)) +- The {{WebExtAPIRef("proxy")}} API adds support for MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxies. ([Firefox bug 1988988](https://bugzil.la/1988988)) From 8f84f316f9b354a7143ed83603a20bd8c988205b Mon Sep 17 00:00:00 2001 From: rebloor Date: Fri, 17 Oct 2025 05:45:30 +1300 Subject: [PATCH 2/4] Linter correction Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md index 09f1f5b95a7617d..4e5154d63030d4f 100644 --- a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md @@ -27,7 +27,7 @@ Values of this type are objects. They contain the following properties: - : `number`. The port number of the proxy server. Mandatory unless `type` is `"direct"`. - `pathTemplate` - : `string`. The path template. Must be set when the proxy type is `"masque"`, otherwise it's ignored. -- `username` {{optional_inline}} +- `username` {{optional_inline}} - : `string`. Username for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). Must not be set when proxy is `"masque"`. - `password` {{optional_inline}} - : `string`. Password for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). Must not be set when proxy is `"masque"`. From 95e016f5f8b3d38026232f7741b532231b9ddaf0 Mon Sep 17 00:00:00 2001 From: rebloor Date: Mon, 10 Nov 2025 11:16:01 +1300 Subject: [PATCH 3/4] Apply suggestions from review Co-authored-by: Rob Wu --- files/en-us/mozilla/firefox/releases/145/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/en-us/mozilla/firefox/releases/145/index.md b/files/en-us/mozilla/firefox/releases/145/index.md index a1e9734328f8649..669ac1723485b24 100644 --- a/files/en-us/mozilla/firefox/releases/145/index.md +++ b/files/en-us/mozilla/firefox/releases/145/index.md @@ -75,7 +75,7 @@ Firefox 145 is the current [Nightly version of Firefox](https://www.firefox.com/ ## Changes for add-on developers - Cookies created with {{WebExtAPIRef("cookies.set()")}} are now validated, and invalid cookies are rejected. This change was implemented in Nightly only from Firefox 142. ([Firefox bug 1976509](https://bugzil.la/1976509)) -- The {{WebExtAPIRef("proxy")}} API adds support for MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxies. ([Firefox bug 1988988](https://bugzil.la/1988988)) +- The {{WebExtAPIRef("proxy.onRequest")}} API adds support for MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxies in the {{WebExtAPIRef("proxy.ProxyInfo")}} return type. ([Firefox bug 1988988](https://bugzil.la/1988988)) From 9592503d9e8b854136e48771c0a809f5e793c8f0 Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Mon, 10 Nov 2025 12:24:38 +1300 Subject: [PATCH 4/4] Update for renaming of pathTemplate to masqueTemplate --- .../add-ons/webextensions/api/proxy/proxyinfo/index.md | 4 ++-- files/en-us/mozilla/firefox/releases/145/index.md | 1 - files/en-us/mozilla/firefox/releases/146/index.md | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md index 4e5154d63030d4f..761e6548904fc5b 100644 --- a/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.md @@ -25,8 +25,8 @@ Values of this type are objects. They contain the following properties: - : `string`. The hostname of the proxy server. Mandatory unless `type` is `"direct"`. - `port` - : `number`. The port number of the proxy server. Mandatory unless `type` is `"direct"`. -- `pathTemplate` - - : `string`. The path template. Must be set when the proxy type is `"masque"`, otherwise it's ignored. +- `masqueTemplate` + - : `string`. The URI template for the MASQUE proxy, starting from the path component of the URI. This must contain the `target_host` and `target_port` template variables as defined in [RFC 9298](https://www.rfc-editor.org/rfc/rfc9298.html#name-client-configuration). For example, `/.well-known/masque/udp/{target_host}/{target_port}/`. Must be set when the proxy type is `"masque"`. - `username` {{optional_inline}} - : `string`. Username for the proxy service. This is usable with "socks". For HTTP proxy authorizations, use [`webRequest.onAuthRequired`](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired). Must not be set when proxy is `"masque"`. - `password` {{optional_inline}} diff --git a/files/en-us/mozilla/firefox/releases/145/index.md b/files/en-us/mozilla/firefox/releases/145/index.md index 64115cff1d5b011..708e3730b82d255 100644 --- a/files/en-us/mozilla/firefox/releases/145/index.md +++ b/files/en-us/mozilla/firefox/releases/145/index.md @@ -101,7 +101,6 @@ Firefox 145 is the current [Beta version of Firefox](https://www.firefox.com/en- ## Changes for add-on developers - Cookies created with {{WebExtAPIRef("cookies.set()")}} are now validated, and invalid cookies are rejected. This change was implemented in Nightly only from Firefox 142. ([Firefox bug 1976509](https://bugzil.la/1976509)) -- The {{WebExtAPIRef("proxy.onRequest")}} API adds support for MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxies in the {{WebExtAPIRef("proxy.ProxyInfo")}} return type. ([Firefox bug 1988988](https://bugzil.la/1988988)) diff --git a/files/en-us/mozilla/firefox/releases/146/index.md b/files/en-us/mozilla/firefox/releases/146/index.md index 248ed4ea843197f..03a632813a45129 100644 --- a/files/en-us/mozilla/firefox/releases/146/index.md +++ b/files/en-us/mozilla/firefox/releases/146/index.md @@ -77,6 +77,7 @@ Firefox 146 is the current [Nightly version of Firefox](https://www.firefox.com/ ## Changes for add-on developers - {{WebExtAPIRef("browsingData.removeLocalStorage")}} and {{WebExtAPIRef("browsingData.remove")}} (when `localStorage` is set in {{WebExtAPIRef("browsingData.DataTypeSet")}}) now delete objects from [`sessionStorage`](/en-US/docs/Web/API/Window/sessionStorage). ([Firefox bug 1886894](https://bugzil.la/1886894)) +- The {{WebExtAPIRef("proxy.onRequest")}} API adds support for MASQUE (Multiplexed Application Substrate over QUIC Encryption) proxies in the {{WebExtAPIRef("proxy.ProxyInfo")}} return type. ([Firefox bug 1988988](https://bugzil.la/1988988) and Firefox bug 1998894](https://bugzil.la/1998894))