Descrição
Use a API chrome.proxy para gerenciar as configurações de proxy do Chrome. Essa API depende do protótipo ChromeSetting do tipo API para receber e definir a configuração do proxy.
Permissões
proxyManifesto
É preciso declarar o "proxy" permissão no manifesto de extensões para usar as configurações de proxy API. Exemplo:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Objetos e propriedades
As configurações de proxy são definidas em um objeto proxy.ProxyConfig. Dependendo das configurações de proxy do Chrome,
as configurações podem conter proxy.ProxyRules ou proxy.PacScript.
Modos de proxy
O atributo mode de um objeto ProxyConfig determina o comportamento geral do Chrome em relação aos
uso de proxy. Ele pode assumir os seguintes valores:
direct- No modo
direct, todas as conexões são criadas diretamente, sem nenhum proxy envolvido. Esse modo permite sem mais parâmetros no objetoProxyConfig. auto_detect- No modo
auto_detect, a configuração de proxy é determinada por um script de PAC que pode ser baixado em http://wpad/wpad.dat. Esse modo não permite mais parâmetros no objetoProxyConfig. pac_script- No modo
pac_script, a configuração de proxy é determinada por um script de PAC que é recuperado do URL especificado no objetoproxy.PacScriptou tirado literalmente do elementodataespecificado no objetoproxy.PacScript. Além disso, esse modo não permite outros parâmetros no objetoProxyConfig. fixed_servers- No modo
fixed_servers, a configuração do proxy é codificada em um objetoproxy.ProxyRules. Seu é descrita em Regras de proxy. Além disso, o modofixed_serversnão permite parâmetros no objetoProxyConfig. system- No modo
system, a configuração do proxy é extraída do sistema operacional. Esse modo não permite mais parâmetros no objetoProxyConfig. O modosystemé diferente definir nenhuma configuração de proxy. No último caso, o Chrome volta para as configurações do sistema apenas se nenhuma opção de linha de comando influencia a configuração do proxy.
Regras de proxy
O objeto proxy.ProxyRules pode conter um atributo singleProxy ou um subconjunto de
proxyForHttp, proxyForHttps, proxyForFtp e fallbackProxy.
No primeiro caso, o tráfego HTTP, HTTPS e FTP é intermediado pelo servidor proxy especificado. Outra opção
o tráfego é enviado diretamente. No último caso, o comportamento é um pouco mais sutil: se um servidor proxy
estiver configurado para o protocolo HTTP, HTTPS ou FTP, o respectivo tráfego será intermediado por
servidor especificado. Se nenhum servidor proxy for especificado ou o tráfego usar um protocolo diferente do
HTTP, HTTPS ou FTP, a fallbackProxy será usada. Se nenhum fallbackProxy for especificado, o tráfego será enviado
diretamente sem um servidor proxy.
Objetos do servidor proxy
Um servidor proxy é configurado em um objeto proxy.ProxyServer. A conexão com o servidor proxy
(definido pelo atributo host) usa o protocolo definido no atributo scheme. Em caso negativo
scheme for especificado, a conexão de proxy será http por padrão.
Se nenhum port for definido em um objeto proxy.ProxyServer, a porta será derivada do esquema.
As portas padrão são:
| Esquema | Porta |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Lista de exceções
Servidores individuais podem ser excluídos do proxy com o bypassList. Essa lista pode conter
as seguintes entradas:
[SCHEME://]HOST_PATTERN[:PORT]Corresponde a todos os nomes de host que correspondem ao padrão
HOST_PATTERN. Um"."inicial é interpretado como uma"*.".Exemplos:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Padrão Correspondências Não corresponde ".foobar.com""www.foobar.com""foobar.com""*.foobar.com""www.foobar.com""foobar.com""foobar.com""foobar.com""www.foobar.com""*foobar.com""foobar.com","www.foobar.com","foofoobar.com"[SCHEME://]IP_LITERAL[:PORT]Corresponde a URLs que são literais de endereço IP. Conceitualmente, isso é semelhante ao primeiro caso, com casos especiais para lidar com a canonização literal de IP. Por exemplo, correspondência com "[0:0:0::1]" é igual à correspondência em "[::1]" porque a canonização do IPv6 é feita internamente.
Exemplos:
127.0.1,[0:0::1],[::1]:80ehttps://[::1]:443.IP_LITERAL/PREFIX_LENGTH_IN_BITSCorresponde a qualquer URL que contenha um literal de IP (
IP_LITERAL) no do intervalo 10.240.0.0/16. O intervalo de IP (PREFIX_LENGTH_IN_BITS) é especificado com CIDR notável.Corresponde a qualquer URL que contenha um literal de IP dentro do intervalo especificado. O intervalo de IP é especificado usando CIDR notável. Exemplos:
"192.168.1.1/16", "fefe:13::abc/33"<local>A string literal
<local>corresponde a nomes de host simples. Um nome de host simples é aquele que não contém pontos e não é um literal de IP. Por exemplo,exampleelocalhostsão nomes de host simples, enquantoexample.com,example.e[::1]não estão.Exemplo:
"<local>"
Exemplos
O código a seguir define um proxy SOCKS 5 para conexões HTTP a todos os servidores exceto foobar.com e usa conexões diretas para todos os outros protocolos. As configurações se aplicam a janelas normais e anônimas, mas As janelas anônimas herdam as configurações das janelas normais. Consulte também a APITypes na documentação do Google Cloud.
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "socks5",
host: "1.2.3.4"
},
bypassList: ["foobar.com"]
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
O código a seguir define um script de PAC personalizado.
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
" if (host == 'foobar.com')\n" +
" return 'PROXY blackhole:80';\n" +
" return 'DIRECT';\n" +
"}"
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
O próximo snippet consulta as configurações de proxy em vigor no momento. As configurações efetivas de proxy podem ser determinada por outra extensão ou por uma política. Consulte a documentação da APITypes para ver mais detalhes.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
O objeto value transmitido para set() não é idêntico ao objeto value transmitido para o
função de callback de get(). O último conterá um elemento rules.proxyForHttp.port.
Tipos
Mode
Enumeração
"direto"
"auto_detect"
"pac_script"
"fix_servers"
"sistema"
PacScript
Um objeto que contém informações de configuração automática do proxy. Exatamente um dos campos não deve estar em branco.
Propriedades
-
dados
string opcional
Um script de PAC.
-
obrigatório
booleano opcional
Se for verdadeiro, um script de PAC inválido impedirá que a pilha de rede use conexões diretas. O padrão é "false".
-
url
string opcional
URL do arquivo PAC a ser usado.
ProxyConfig
Um objeto que encapsula uma configuração completa de proxy.
Propriedades
-
modo
"direto" = Nunca usar um proxy "auto_detect" = Detectar automaticamente configurações de proxy "pac_script" = Usar script de PAC especificado "fix_servers" = Especificar manualmente os servidores proxy "sistema" = Usar configurações do proxy do sistema
-
pacScript
PacScript opcional
O script de configuração automática de proxy (PAC, na sigla em inglês) para esta configuração. Usar para "pac_script" modo
-
regras
ProxyRules opcional
As regras de proxy que descrevem esta configuração. Use para "Fixed_servers" modo
ProxyRules
Um objeto que encapsula o conjunto de regras de proxy para todos os protocolos. Use "singleProxy" ou (um subconjunto de) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' e "fallbackProxy".
Propriedades
-
bypassList
string[] opcional
Lista de servidores aos quais se conectar sem um servidor proxy.
-
fallbackProxy
ProxyServer opcional
O servidor proxy a ser usado para qualquer outra coisa ou se qualquer um dos proxiesFor... não estiver especificado.
-
proxyForFtp
ProxyServer opcional
O servidor proxy a ser usado para solicitações de FTP.
-
proxyForHttp
ProxyServer opcional
O servidor proxy a ser usado para solicitações HTTP.
-
proxyForHttps
ProxyServer opcional
O servidor proxy a ser usado para solicitações HTTPS.
-
singleProxy
ProxyServer opcional
O servidor proxy a ser usado para todas as solicitações por URL (ou seja, http, https e ftp).
ProxyServer
Um objeto que encapsula a especificação de um único servidor proxy.
Propriedades
-
host
string
O nome do host ou o endereço IP do servidor proxy. Os nomes de host devem estar em ASCII (em formato Punycode). O IDNA ainda não é compatível.
-
porta
número opcional
A porta do servidor proxy. O padrão é uma porta que depende do esquema.
-
planejar
Esquema opcional
O esquema (protocolo) do próprio servidor proxy. O padrão é "http".
Scheme
Enumeração
"http"
"https"
"quic"
"socks4"
"meias5"
Propriedades
settings
Configurações de proxy a serem usadas. O valor dessa configuração é um objeto ProxyConfig.
Tipo
types.ChromeSetting<ProxyConfig>
Eventos
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Notifica sobre erros de proxy.
Parâmetros
-
callback
função
O parâmetro
callbacktem esta aparência:(details: object) => void
-
detalhes
objeto
-
detalhes
string
Mais detalhes sobre o erro, como um erro de tempo de execução do JavaScript.
-
erro
string
A descrição do erro.
-
fatal
booleano
Se for verdadeiro, o erro foi fatal e a transação de rede foi cancelada. Caso contrário, uma conexão direta é usada.
-
-