chrome.proxy

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

proxy

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"
  ],
  ...
}

Concetti e utilizzo

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à direct tutte le connessioni vengono create direttamente, senza utilizzare alcun proxy. Questa modalità ti consente Non ci sono altri parametri nell'oggetto ProxyConfig.
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'oggetto ProxyConfig.
pac_script
In modalità pac_script, la configurazione del proxy viene determinata da uno script PAC recuperato dall'URL specificato nell'oggetto proxy.PacScript o preso letteralmente dall'elemento data specificato nell'oggetto proxy.PacScript. Inoltre, questa modalità non consente ulteriori parametri nell'oggetto ProxyConfig.
fixed_servers
In modalità fixed_servers la configurazione del proxy viene codificata in un oggetto proxy.ProxyRules. È è descritta in Regole proxy. Inoltre, la modalità fixed_servers non consente nell'oggetto ProxyConfig.
system
In modalità system, la configurazione del proxy viene acquisita dal sistema operativo. Questa modalità non consente e altri parametri nell'oggetto ProxyConfig. 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:

SchemePorta
http80
https443
socks41080
socks51080

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".

PatternCorrisponde aNon 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, example e localhost sono 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. Vedi 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 correnti effettive. 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

Chrome 54 e versioni successive .

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

Chrome 54 e versioni successive .

Enum

"http"

"https"

"quic"

"calze4"

"calze5"

Proprietà

settings

Impostazioni del proxy da utilizzare. Il valore di questa impostazione è un oggetto ProxyConfig.

Eventi

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

Notifiche agli errori del proxy.

Parametri

  • callback

    funzione

    Il parametro callback ha 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.