-
Notifications
You must be signed in to change notification settings - Fork 15.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add support for configuring system network context proxies (#41416
) * feat: add support for configuring system network context proxies Co-authored-by: deepak1556 <hop2deep@gmail.com> * chore: add specs Co-authored-by: deepak1556 <hop2deep@gmail.com> * chore: fix lint Co-authored-by: deepak1556 <hop2deep@gmail.com> * fix: address review feedback Co-authored-by: deepak1556 <hop2deep@gmail.com> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com>
- Loading branch information
1 parent
8ab99e2
commit af47434
Showing
13 changed files
with
391 additions
and
113 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# ProxyConfig Object | ||
|
||
* `mode` string (optional) - The proxy mode. Should be one of `direct`, | ||
`auto_detect`, `pac_script`, `fixed_servers` or `system`. | ||
Defaults to `pac_script` proxy mode if `pacScript` option is specified | ||
otherwise defaults to `fixed_servers`. | ||
* `direct` - In direct mode all connections are created directly, without any proxy involved. | ||
* `auto_detect` - In auto_detect mode the proxy configuration is determined by a PAC script that can | ||
be downloaded at http://wpad/wpad.dat. | ||
* `pac_script` - In pac_script mode the proxy configuration is determined by a PAC script that is | ||
retrieved from the URL specified in the `pacScript`. This is the default mode if `pacScript` is specified. | ||
* `fixed_servers` - In fixed_servers mode the proxy configuration is specified in `proxyRules`. | ||
This is the default mode if `proxyRules` is specified. | ||
* `system` - In system mode the proxy configuration is taken from the operating system. | ||
Note that the system mode is different from setting no proxy configuration. | ||
In the latter case, Electron falls back to the system settings only if no | ||
command-line options influence the proxy configuration. | ||
* `pacScript` string (optional) - The URL associated with the PAC file. | ||
* `proxyRules` string (optional) - Rules indicating which proxies to use. | ||
* `proxyBypassRules` string (optional) - Rules indicating which URLs should | ||
bypass the proxy settings. | ||
|
||
When `mode` is unspecified, `pacScript` and `proxyRules` are provided together, the `proxyRules` | ||
option is ignored and `pacScript` configuration is applied. | ||
|
||
The `proxyRules` has to follow the rules below: | ||
|
||
```sh | ||
proxyRules = schemeProxies[";"<schemeProxies>] | ||
schemeProxies = [<urlScheme>"="]<proxyURIList> | ||
urlScheme = "http" | "https" | "ftp" | "socks" | ||
proxyURIList = <proxyURL>[","<proxyURIList>] | ||
proxyURL = [<proxyScheme>"://"]<proxyHost>[":"<proxyPort>] | ||
``` | ||
|
||
For example: | ||
|
||
* `http=foopy:80;ftp=foopy2` - Use HTTP proxy `foopy:80` for `http://` URLs, and | ||
HTTP proxy `foopy2:80` for `ftp://` URLs. | ||
* `foopy:80` - Use HTTP proxy `foopy:80` for all URLs. | ||
* `foopy:80,bar,direct://` - Use HTTP proxy `foopy:80` for all URLs, failing | ||
over to `bar` if `foopy:80` is unavailable, and after that using no proxy. | ||
* `socks4://foopy` - Use SOCKS v4 proxy `foopy:1080` for all URLs. | ||
* `http=foopy,socks5://bar.com` - Use HTTP proxy `foopy` for http URLs, and fail | ||
over to the SOCKS5 proxy `bar.com` if `foopy` is unavailable. | ||
* `http=foopy,direct://` - Use HTTP proxy `foopy` for http URLs, and use no | ||
proxy if `foopy` is unavailable. | ||
* `http=foopy;socks=foopy2` - Use HTTP proxy `foopy` for http URLs, and use | ||
`socks4://foopy2` for all other URLs. | ||
|
||
The `proxyBypassRules` is a comma separated list of rules described below: | ||
|
||
* `[ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port> ]` | ||
|
||
Match all hostnames that match the pattern HOSTNAME_PATTERN. | ||
|
||
Examples: | ||
"foobar.com", "\*foobar.com", "\*.foobar.com", "\*foobar.com:99", | ||
"https://x.\*.y.com:99" | ||
|
||
* `"." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]` | ||
|
||
Match a particular domain suffix. | ||
|
||
Examples: | ||
".google.com", ".com", "http://.google.com" | ||
|
||
* `[ SCHEME "://" ] IP_LITERAL [ ":" PORT ]` | ||
|
||
Match URLs which are IP address literals. | ||
|
||
Examples: | ||
"127.0.1", "\[0:0::1]", "\[::1]", "http://\[::1]:99" | ||
|
||
* `IP_LITERAL "/" PREFIX_LENGTH_IN_BITS` | ||
|
||
Match any URL that is to an IP literal that falls between the | ||
given range. IP range is specified using CIDR notation. | ||
|
||
Examples: | ||
"192.168.1.1/16", "fefe:13::abc/33". | ||
|
||
* `<local>` | ||
|
||
Match local addresses. The meaning of `<local>` is whether the | ||
host matches one of: "127.0.0.1", "::1", "localhost". |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.