Description
Utilisez l'API chrome.proxy pour gérer les paramètres proxy de Chrome. Cette API s'appuie sur le prototype ChromeSetting de l'API de type pour obtenir et définir la configuration du proxy.
Autorisations
proxyFichier manifeste
Vous devez déclarer le "proxy" autorisation d'utiliser les paramètres de proxy dans le fichier manifeste de l'extension API. Exemple :
{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}
Objets et propriétés
Les paramètres de proxy sont définis dans un objet proxy.ProxyConfig. En fonction des paramètres de proxy de Chrome,
les paramètres peuvent contenir proxy.ProxyRules ou proxy.PacScript.
Modes proxy
L'attribut mode d'un objet ProxyConfig détermine le comportement général de Chrome vis-à-vis des éléments suivants :
l'utilisation du proxy. Il accepte les valeurs suivantes:
- direct
- En mode direct, toutes les connexions sont créées directement, sans proxy. Ce mode vous permet aucun autre paramètre dans l'objetProxyConfig.
- auto_detect
- En mode auto_detect, la configuration du proxy est déterminée par un script PAC qui peut être téléchargé à l'adresse http://wpad/wpad.dat. Ce mode n'autorise plus d'autres paramètres dans l'objetProxyConfig.
- pac_script
- En mode pac_script, la configuration du proxy est déterminée par un script PAC qui est soit récupéré de l'URL spécifiée dans l'objetproxy.PacScriptou tirée littéralement de l'élémentdataspécifié dans l'objetproxy.PacScript. En outre, ce mode n'autorise aucun autre paramètre dans l'objetProxyConfig.
- fixed_servers
- En mode fixed_servers, la configuration du proxy est codifiée dans un objetproxy.ProxyRules. Son est décrite dans la section Règles de proxy. En outre, le modefixed_serversne permet plus dans l'objetProxyConfig.
- system
- En mode system, la configuration du proxy provient du système d'exploitation. Ce mode ne permet d'autres paramètres dans l'objetProxyConfig. Notez que le modesystemest différent de sans configuration de proxy. Dans ce dernier cas, Chrome revient aux paramètres système aucune option de ligne de commande n'influence la configuration du proxy.
Règles de proxy
L'objet proxy.ProxyRules peut contenir un attribut singleProxy ou un sous-ensemble de
proxyForHttp, proxyForHttps, proxyForFtp et fallbackProxy.
Dans le premier cas, le trafic HTTP, HTTPS et FTP est transmis par proxy via le serveur proxy spécifié. Autre
le trafic est envoyé directement. Dans ce dernier cas, le comportement est légèrement plus subtil: si un serveur proxy
est configuré pour le protocole HTTP, HTTPS ou FTP, le trafic correspondant est transmis par proxy via la
le serveur spécifié. Si aucun serveur proxy de ce type n'est spécifié ou si le trafic utilise un protocole différent de
HTTP, HTTPS ou FTP, fallbackProxy est utilisé. Si aucun fallbackProxy n'est spécifié, le trafic est envoyé.
directement sans 
serveur proxy.
Objets de serveur proxy
Un serveur proxy est configuré dans un objet proxy.ProxyServer. La connexion au serveur proxy
(défini par l'attribut host) utilise le protocole défini dans l'attribut scheme. Si non
scheme est spécifié, la connexion proxy est définie par défaut sur http.
Si aucun port n'est défini dans un objet proxy.ProxyServer, le port est dérivé du schéma.
Les ports par défaut sont les suivants:
| Scheme | Port | 
|---|---|
| http | 80 | 
| https | 443 | 
| socks4 | 1080 | 
| socks5 | 1080 | 
Liste de contournements
Les serveurs individuels peuvent être exclus du proxy avec le bypassList. Cette liste peut contenir
les entrées suivantes:
- [SCHEME://]HOST_PATTERN[:PORT]
- Faites correspondre tous les noms d'hôte correspondant au format - HOST_PATTERN. Un- "."de début est interprété comme- "*."- Exemples: - "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".- Schéma - Correspond à - Ne correspond pas - ".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]
- Faites correspondre les URL qui sont des littéraux d'adresse IP. Conceptuellement, ce cas est similaire au premier, mais avec des cas particuliers pour gérer la mise en forme canonique des littéraux IP. Par exemple, la correspondance avec "[0:0:0::1]" est identique à une correspondance pour "[::1]" car le choix de l'URL canonique pour IPv6 est effectué en interne. - Exemples: - 127.0.1,- [0:0::1],- [::1]:80,- https://[::1]:443
- IP_LITERAL/PREFIX_LENGTH_IN_BITS
- Rechercher une correspondance avec toute URL contenant un littéral IP ( - IP_LITERAL) au sein de la la plage d'adresses IP. La plage d'adresses IP (- PREFIX_LENGTH_IN_BITS) est spécifiée au format CIDR. d'entrée.
- Rechercher une correspondance avec toute URL contenant un littéral IP dans la plage donnée. La plage d'adresses IP est spécifiée en CIDR. . Exemples : - "192.168.1.1/16", "fefe:13::abc/33"
- <local>
- La chaîne littérale - <local>correspond à des noms d'hôte simples. Un nom d’hôte simple est un nom d’hôte qui ne contient pas et n'est pas un littéral IP. Par exemple,- exampleet- localhostsont des noms d'hôte simples. contrairement à- example.com,- example.et- [::1].- Exemple : - "<local>"
Exemples
Le code suivant définit un proxy SOCKS 5 pour les connexions HTTP à tous les serveurs sauf foobar.com et utilise des connexions directes pour tous les autres protocoles. Ces paramètres s'appliquent aux fenêtres standards et aux fenêtres de navigation privée, les fenêtres de navigation privée héritent des paramètres des fenêtres standards. Veuillez également consulter l'API Types. dans la documentation 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() {}
);
Le code suivant définit un script PAC personnalisé.
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() {}
);
L'extrait de code suivant interroge les paramètres proxy actuellement appliqués. Les paramètres de proxy effectifs peuvent être déterminée par une autre extension ou par une règle. Pour en savoir plus, consultez la documentation sur l'API Types.
chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);
Notez que l'objet value transmis à set() n'est pas identique à l'objet value transmis à
fonction de rappel de get(). Ce dernier contiendra un élément rules.proxyForHttp.port.
Types
Mode
Énumération
"direct" 
 
"auto_detect" 
 
"pac_script" 
 
"fixe_serveurs" 
 
"système" 
 
PacScript
Objet contenant des informations de configuration automatique du proxy. Un seul des champs doit être renseigné.
Propriétés
- 
    donnéeschaîne facultatif Script PAC. 
- 
    obligatoireBooléen facultatif Si la valeur est "true", un script PAC non valide empêche la pile réseau de revenir aux connexions directes. Valeur par défaut : "false". 
- 
    urlchaîne facultatif URL du fichier PAC à utiliser. 
ProxyConfig
Objet encapsulant une configuration complète de proxy.
Propriétés
- 
    mode"direct" = Ne jamais utiliser de proxy "auto_detect" = Détecter automatiquement les paramètres de proxy "pac_script" = Utiliser le script PAC spécifié "fixe_serveurs" = Spécifier manuellement les serveurs proxy "system" = Utiliser les paramètres proxy du système 
- 
    pacScriptPacScript facultatif Script de configuration automatique du proxy (PAC) pour cette configuration. Utilisez cet argument pour "pac_script" . 
- 
    règlesProxyRules facultatif Règles de proxy décrivant cette configuration. Utiliser cette valeur pour les serveurs fixes . 
ProxyRules
Objet encapsulant l'ensemble des règles de proxy pour tous les protocoles. Utilisez "singleProxy" ou (sous-ensemble de) "proxyForHttp", "proxyForHttps", "proxyForFtp" et "fallbackProxy".
Propriétés
- 
    bypassListstring[] facultatif Liste des serveurs auxquels se connecter sans serveur proxy. 
- 
    fallbackProxyProxyServer facultatif Serveur proxy à utiliser pour tout le reste ou si l'un des proxys spécifiques pour... n'est pas spécifié. 
- 
    proxyForFtpProxyServer facultatif Serveur proxy à utiliser pour les requêtes FTP. 
- 
    proxyForHttpProxyServer facultatif Serveur proxy à utiliser pour les requêtes HTTP. 
- 
    proxyForHttpsProxyServer facultatif Serveur proxy à utiliser pour les requêtes HTTPS. 
- 
    singleProxyProxyServer facultatif Serveur proxy à utiliser pour toutes les requêtes par URL (HTTP, HTTPS et FTP). 
ProxyServer
Objet encapsulant la spécification d'un seul serveur proxy.
Propriétés
- 
    hôtechaîne Nom d'hôte ou adresse IP du serveur proxy. Les noms d'hôte doivent être au format ASCII (au format Punycode). IDNA n'est pas encore pris en charge. 
- 
    portnuméro facultatif Port du serveur proxy. La valeur par défaut est un port qui dépend du schéma. 
- 
    schémaSchéma facultatif Schéma (protocole) du serveur proxy lui-même. La valeur par défaut est "http". 
Scheme
Énumération
"http" 
 
"https" 
 
"quic" 
 
"socks4" 
 
"socks5" 
 
Propriétés
settings
Paramètres de proxy à utiliser. La valeur de ce paramètre est un objet ProxyConfig.
Type
types.ChromeSetting<ProxyConfig>
Événements
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Notifie en cas d'erreur de proxy.
Paramètres
- 
    rappelfonction Le paramètre callbackse présente comme suit:(details: object) => void - 
    détailsobjet - 
    détailschaîne Informations supplémentaires sur l'erreur, telles qu'une erreur d'exécution JavaScript. 
- 
    erreurchaîne Description de l'erreur. 
- 
    fatalbooléen Si la valeur est "true", l'erreur était fatale et la transaction réseau a été annulée. Sinon, une connexion directe est utilisée. 
 
- 
    
 
-