Descrizione
Utilizza l'API chrome.proxy per gestire le impostazioni del proxy di Chrome. Questa API si basa sul prototipo ChromeSetting dell'API di tipo per recuperare e impostare la configurazione del proxy.
Autorizzazioni
proxyManifest
Devi dichiarare il "proxy" autorizzazione nel manifest dell'estensione per utilizzare le impostazioni del proxy tramite Google Cloud CLI o tramite l'API Compute Engine. Ad esempio:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Oggetti e proprietà
Le impostazioni del proxy sono definite in un oggetto proxy.ProxyConfig. A seconda delle impostazioni del proxy di Chrome,
le impostazioni possono contenere proxy.ProxyRules o proxy.PacScript.
Modalità proxy
L'attributo mode di un oggetto ProxyConfig determina il comportamento complessivo di Chrome in relazione a
l'utilizzo del proxy. Può assumere i seguenti valori:
direct- In modalità
directtutte le connessioni vengono create direttamente, senza utilizzare alcun proxy. Questa modalità ti consente Non ci sono altri parametri nell'oggettoProxyConfig. auto_detect- In modalità
auto_detect, la configurazione del proxy è determinata da uno script PAC che può essere scaricato all'indirizzo http://wpad/wpad.dat. Questa modalità non consente ulteriori parametri nell'oggettoProxyConfig. pac_script- In modalità
pac_script, la configurazione del proxy viene determinata da uno script PAC recuperato dall'URL specificato nell'oggettoproxy.PacScripto preso letteralmente dall'elementodataspecificato nell'oggettoproxy.PacScript. Inoltre, questa modalità non consente ulteriori parametri nell'oggettoProxyConfig. fixed_servers- In modalità
fixed_serversla configurazione del proxy viene codificata in un oggettoproxy.ProxyRules. È è descritta in Regole proxy. Inoltre, la modalitàfixed_serversnon consente nell'oggettoProxyConfig. system- In modalità
system, la configurazione del proxy viene acquisita dal sistema operativo. Questa modalità non consente e altri parametri nell'oggettoProxyConfig. Tieni presente che la modalitàsystemè diversa da impostare nessuna configurazione proxy. Nel secondo caso, Chrome torna alle impostazioni di sistema solo se nessuna opzione a riga di comando influisce sulla configurazione del proxy.
Regole proxy
L'oggetto proxy.ProxyRules può contenere un attributo singleProxy o un sottoinsieme di
proxyForHttp, proxyForHttps, proxyForFtp e fallbackProxy.
Nel primo caso, il traffico HTTP, HTTPS e FTP viene inviato tramite proxy attraverso il server proxy specificato. Altro
viene inviato direttamente. Nel secondo caso il comportamento è leggermente più discreto: se un server proxy
configurato per il protocollo HTTP, HTTPS o FTP, il rispettivo traffico viene inviato tramite proxy attraverso
server specificato. Se il server proxy non è specificato o il traffico utilizza un protocollo diverso da
HTTP, HTTPS o FTP, viene utilizzato fallbackProxy. Se non viene specificato alcun valore fallbackProxy, il traffico viene inviato
senza un server proxy.
Oggetti server proxy
Un server proxy è configurato in un oggetto proxy.ProxyServer. La connessione al server proxy
(definito dall'attributo host) utilizza il protocollo definito nell'attributo scheme. In caso contrario
scheme è specificato, il valore predefinito della connessione proxy è http.
Se non viene definito port in un oggetto proxy.ProxyServer, la porta deriva dallo schema.
Le porte predefinite sono:
| Scheme | Porta |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
Elenco di esclusione
I singoli server potrebbero essere esclusi dall'invio tramite proxy con bypassList. Questo elenco può contenere
le seguenti voci:
[SCHEME://]HOST_PATTERN[:PORT]Trova tutti i nomi host che corrispondono al pattern
HOST_PATTERN. Un"."iniziale viene interpretato come un"*.".Esempi:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".Pattern Corrisponde a Non corrisponde a ".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"e"foofoobar.com"[SCHEME://]IP_LITERAL[:PORT]Crea corrispondenze per gli URL che corrispondono a valori letterali di indirizzi IP. Concettualmente questo è simile al primo caso, ma con casi speciali per gestire la canonicalizzazione letterale IP. Ad esempio, la corrispondenza con "[0:0:0::1]" è uguale alla corrispondenza su "[::1]" poiché la canonicalizzazione IPv6 viene eseguita internamente.
Esempi:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSTrova qualsiasi URL contenente un valore letterale IP (
IP_LITERAL) all'interno della stringa specificata intervallo. L'intervallo IP (PREFIX_LENGTH_IN_BITS) è specificato utilizzando CIDR non standard.Trova qualsiasi URL contenente un valore letterale IP all'interno dell'intervallo specificato. L'intervallo IP viene specificato utilizzando CIDR la notazione. Esempi:
"192.168.1.1/16", "fefe:13::abc/33"<local>La stringa letterale
<local>corrisponde a nomi host semplici. Un nome host semplice è un nome che non contiene e non è un valore letterale IP. Ad esempio,exampleelocalhostsono nomi host semplici, mentreexample.com,example.e[::1]non lo sono.Esempio:
"<local>"
Esempi
Il seguente codice imposta un proxy SOCKS 5 per le connessioni HTTP a tutti i server, ad eccezione di foobar.com e utilizza e connessioni dirette per tutti gli altri protocolli. Le impostazioni vengono applicate alle finestre normali e di navigazione in incognito, le finestre di navigazione in incognito ereditano le impostazioni dalle finestre normali. Consulta anche l'API Type. documentazione.
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() {}
);
Il seguente codice imposta uno script PAC personalizzato.
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() {}
);
Lo snippet successivo esegue query sulle impostazioni proxy attualmente in uso. Le impostazioni effettive del proxy possono essere determinato da un'altra estensione o da un criterio. Per maggiori dettagli, consulta la documentazione dell'API Tipi.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
Tieni presente che l'oggetto value passato a set() non è identico all'oggetto value passato a
di callback di get(). Quest'ultimo conterrà un elemento rules.proxyForHttp.port.
Tipi
Mode
Enum
"diretto"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
Un oggetto che contiene le informazioni di configurazione automatica del proxy. Uno dei campi non deve essere vuoto.
Proprietà
-
dati
stringa facoltativo
Uno script PAC.
-
obbligatorio
booleano facoltativo
Se impostato su true, uno script PAC non valido impedirà allo stack di rete di tornare alle connessioni dirette. Il valore predefinito è false.
-
url
stringa facoltativo
URL del file PAC da utilizzare.
ProxyConfig
Un oggetto che incapsula una configurazione proxy completa.
Proprietà
-
modalità
'diretto' = Non utilizzare mai un proxy 'auto_detect' = Rileva automaticamente impostazioni proxy "pac_script" = Utilizza lo script PAC specificato "fixed_servers" = Specifica manualmente i server proxy 'system' [sistema] = Utilizza le impostazioni del proxy di sistema
-
pacScript
PacScript facoltativo
Lo script di configurazione automatica del proxy (PAC) per questa configurazione. Utilizza questo campo per "pac_script" .
-
regole
ProxyRules, facoltativo
Le regole del proxy che descrivono questa configurazione. Utilizza questo campo per "fixed_servers" .
ProxyRules
Un oggetto che incapsula l'insieme di regole del proxy per tutti i protocolli. Utilizza "SingleProxy" oppure (un sottoinsieme di) "proxyForHttp", "proxyForHttps", "proxyForFtp" e "fallbackProxy".
Proprietà
-
bypassList
string[] facoltativo
Elenco di server a cui connettersi senza un server proxy.
-
fallbackProxy
ProxyServer facoltativo
Il server proxy da utilizzare per qualsiasi altra attività o se uno qualsiasi dei proxyFor... specifici non è specificato.
-
proxyForFtp
ProxyServer facoltativo
Il server proxy da utilizzare per le richieste FTP.
-
proxyForHttp
ProxyServer facoltativo
Il server proxy da utilizzare per le richieste HTTP.
-
proxyForHttps
ProxyServer facoltativo
Il server proxy da utilizzare per le richieste HTTPS.
-
singleProxy
ProxyServer facoltativo
Il server proxy da utilizzare per tutte le richieste per URL (http, https e ftp).
ProxyServer
Un oggetto che incapsula la specifica di un singolo server proxy.
Proprietà
-
host
stringa
Il nome host o l'indirizzo IP del server proxy. I nomi host devono essere in formato ASCII (nel formato Punycode). IDNA non è ancora supportato.
-
porta
numero facoltativo
La porta del server proxy. Il valore predefinito è una porta che dipende dallo schema.
-
schema
Schema facoltativo
Lo schema (protocollo) del server proxy stesso. Il valore predefinito è "http".
Scheme
Enum
"http"
"https"
"quic"
"calze4"
"calze5"
Proprietà
settings
Impostazioni del proxy da utilizzare. Il valore di questa impostazione è un oggetto ProxyConfig.
Tipo
types.ChromeSetting<ProxyConfig>
Eventi
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Notifiche agli errori del proxy.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:(details: object) => void
-
dettagli
oggetto
-
dettagli
stringa
Ulteriori dettagli sull'errore, ad esempio un errore di runtime JavaScript.
-
errore
stringa
La descrizione dell'errore.
-
fatal
booleano
Se true, l'errore è stato irreversibile e la transazione di rete è stata interrotta. In caso contrario, viene utilizzata una connessione diretta.
-
-