refresh date: 2026-09-25 robots: noindex
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 l'autorisation "proxy" dans le fichier manifeste de l'extension pour utiliser l'API des paramètres proxy. Exemple :
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
Objets et propriétés
Les paramètres proxy sont définis dans un objet proxy.ProxyConfig. Selon les paramètres proxy de Chrome, les paramètres peuvent contenir proxy.ProxyRules ou un proxy.PacScript.
Modes proxy
L'attribut mode d'un objet ProxyConfig détermine le comportement global de Chrome concernant l'utilisation du proxy. Il peut prendre les valeurs suivantes :
direct- En mode
direct, toutes les connexions sont créées directement, sans proxy. Ce mode n'autorise 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 aucun autre paramètre 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é à partir de l'URL spécifiée dans l'objetproxy.PacScript, soit extrait 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. Sa structure est décrite dans la section Règles de proxy. En outre, le modefixed_serversn'autorise aucun autre paramètre dans l'objetProxyConfig. system- En mode
system, la configuration du proxy est extraite du système d'exploitation. Ce mode n'autorise aucun autre paramètre dans l'objetProxyConfig. Notez que le modesystemest différent de l'absence de configuration de proxy. Dans ce dernier cas, Chrome ne revient aux paramètres système que si 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 acheminé via le serveur proxy spécifié. Les autres types de trafic sont envoyés 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 acheminé via le serveur spécifié. Si aucun serveur proxy de ce type n'est spécifié ou si le trafic utilise un protocole autre que 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éfinie par l'attribut host) utilise le protocole défini dans l'attribut scheme. Si aucun scheme n'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 d'exemption
Les serveurs individuels peuvent être exclus de la mise en proxy avec bypassList. Cette liste peut contenir les entrées suivantes :
[SCHEME://]HOST_PATTERN[:PORT]Mettre en correspondance tous les noms d'hôte correspondant au modèle
HOST_PATTERN. Un"."de début est interprété comme un"*.".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]Mettre en correspondance les URL qui sont des littéraux d'adresse IP. Conceptuellement, cela est similaire au premier cas, mais avec des cas particuliers pour gérer la canonisation littérale des adresses IP. Par exemple, la mise en correspondance sur "[0:0:0::1]" est identique à la mise en correspondance sur "[::1]", car la canonisation IPv6 est effectuée en interne.
Exemples :
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSCorrespond à toute URL contenant une adresse IP littérale (
IP_LITERAL) dans la plage donnée. La plage d'adresses IP (PREFIX_LENGTH_IN_BITS) est spécifiée à l'aide de la notation CIDR.Correspond à toute URL contenant une adresse IP littérale comprise dans la plage indiquée. La plage d'adresses IP est spécifiée à l'aide de la notation 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 ne contient pas de point et n'est pas une adresse IP littérale. Par exemple,exampleetlocalhostsont des noms d'hôte simples, tandis queexample.com,example.et[::1]ne le sont pas.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. Les paramètres s'appliquent aux fenêtres standards et de navigation privée, car les fenêtres de navigation privée héritent des paramètres des fenêtres standards. Veuillez également consulter la documentation de l'API Types.
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 en vigueur. Les paramètres proxy effectifs peuvent être déterminés par une autre extension ou par une règle. Pour en savoir plus, consultez la documentation de 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 à la fonction de rappel de get(). Ce dernier contiendra un élément rules.proxyForHttp.port.
Types
Mode
Énumération
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
Objet contenant des informations de configuration automatique du proxy. Un seul des champs ne doit pas être vide.
Propriétés
-
données
chaîne facultatif
un script PAC ;
-
obligatoire
boolean facultatif
Si la valeur est définie sur "True", un script PAC non valide empêchera la pile réseau de revenir aux connexions directes. Valeur par défaut : "false".
-
url
chaîne facultatif
URL du fichier PAC à utiliser.
ProxyConfig
Objet encapsulant une configuration de proxy complète.
Propriétés
-
mode
"direct" = Ne jamais utiliser de proxy "auto_detect" = Détecter automatiquement les paramètres proxy "pac_script" = Utiliser le script PAC spécifié "fixed_servers" = Spécifier manuellement les serveurs proxy "system" = Utiliser les paramètres proxy du système
-
pacScript
PacScript facultatif
Script de configuration automatique du proxy (PAC) pour cette configuration. Utilisez cette option pour le mode "pac_script".
-
règles
ProxyRules facultatif
Règles de proxy décrivant cette configuration. Utilisez cette option pour le mode "fixed_servers".
ProxyRules
Objet encapsulant l'ensemble des règles de proxy pour tous les protocoles. Utilisez "singleProxy" ou (un sous-ensemble de) "proxyForHttp", "proxyForHttps", "proxyForFtp" et "fallbackProxy".
Propriétés
-
bypassList
string[] facultatif
Liste des serveurs auxquels se connecter sans serveur proxy.
-
fallbackProxy
ProxyServer facultatif
Serveur proxy à utiliser pour tout le reste ou si l'un des proxyFor... spécifiques n'est pas spécifié.
-
proxyForFtp
ProxyServer facultatif
Serveur proxy à utiliser pour les requêtes FTP.
-
proxyForHttp
ProxyServer facultatif
Serveur proxy à utiliser pour les requêtes HTTP.
-
proxyForHttps
ProxyServer facultatif
Serveur proxy à utiliser pour les requêtes HTTPS.
-
singleProxy
ProxyServer 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ôte
chaîne
Nom d'hôte ou adresse IP du serveur proxy. Les noms d'hôte doivent être au format ASCII (Punycode). IDNA n'est pas encore pris en charge.
-
port
number facultatif
Port du serveur proxy. La valeur par défaut est un port qui dépend du schéma.
-
schéma
Scheme 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 proxy à utiliser. La valeur de ce paramètre est un objet ProxyConfig.
Événements
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Envoie des notifications concernant les erreurs de proxy.
Paramètres
-
callback
fonction
Le paramètre
callbackse présente comme suit :(details: object) => void
-
détails
objet
-
détails
chaîne
Informations supplémentaires sur l'erreur, telles qu'une erreur d'exécution JavaScript.
-
erreur
chaîne
Description de l'erreur.
-
fatal
boolé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 à la place.
-
-