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]:443
- IP_LITERAL/PREFIX_LENGTH_IN_BITS
- Trova 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,- examplee- localhostsono nomi host semplici, mentre- example.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à
- 
    datistringa facoltativo Uno script PAC. 
- 
    obbligatoriobooleano facoltativo Se impostato su true, uno script PAC non valido impedirà allo stack di rete di tornare alle connessioni dirette. Il valore predefinito è false. 
- 
    urlstringa 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 
- 
    pacScriptPacScript facoltativo Lo script di configurazione automatica del proxy (PAC) per questa configurazione. Utilizza questo campo per "pac_script" . 
- 
    regoleProxyRules, 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à
- 
    bypassListstring[] facoltativo Elenco di server a cui connettersi senza un server proxy. 
- 
    fallbackProxyProxyServer facoltativo Il server proxy da utilizzare per qualsiasi altra attività o se uno qualsiasi dei proxyFor... specifici non è specificato. 
- 
    proxyForFtpProxyServer facoltativo Il server proxy da utilizzare per le richieste FTP. 
- 
    proxyForHttpProxyServer facoltativo Il server proxy da utilizzare per le richieste HTTP. 
- 
    proxyForHttpsProxyServer facoltativo Il server proxy da utilizzare per le richieste HTTPS. 
- 
    singleProxyProxyServer 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à
- 
    hoststringa 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. 
- 
    portanumero facoltativo La porta del server proxy. Il valore predefinito è una porta che dipende dallo schema. 
- 
    schemaSchema 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
- 
    callbackfunzione Il parametro callbackha il seguente aspetto:(details: object) => void - 
    dettaglioggetto - 
    dettaglistringa Ulteriori dettagli sull'errore, ad esempio un errore di runtime JavaScript. 
- 
    errorestringa La descrizione dell'errore. 
- 
    fatalbooleano Se true, l'errore è stato irreversibile e la transazione di rete è stata interrotta. In caso contrario, viene utilizzata una connessione diretta. 
 
- 
    
 
-