aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/proxy
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/api/proxy')
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/index.html68
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html60
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/onrequest/index.html107
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.html63
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/register/index.html161
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/requestdetails/index.html60
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/proxy/unregister/index.html55
7 files changed, 574 insertions, 0 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/index.html
new file mode 100644
index 0000000000..83cebd6fdf
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/index.html
@@ -0,0 +1,68 @@
+---
+title: proxy
+slug: Mozilla/Add-ons/WebExtensions/API/proxy
+tags:
+ - API
+ - Add-ons
+ - Proxy
+ - WebExtensions
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy
+---
+<div>{{AddonSidebar}}</div>
+
+<div class="blockIndicator warning">
+<p><strong>Avertissement</strong><br>
+ Vous ne devez pas utiliser la fonction {{WebExtAPIRef("proxy.register()")}} ou la fonction {{WebExtAPIRef("proxy.unregister()")}} pour enregistrer et supprimer le fichier <a href="/en-US/Add-ons/WebExtensions/API/proxy/register#PAC_file_specification">Proxy Auto-Configuration (PAC)</a>.  Cette API était dépréciée dans Firefox 68 et sera supprimée de Firefox 71.</p>
+</div>
+
+<p>Utilisez l'API proxy pour les requêtes Web proxy. Vous pouvez utiliser l'écouteur d'événement {{WebExtAPIRef("proxy.onRequest")}}} pour intercepter les requêtes web, et retourner un objet qui décrit si et comment les proxyer.</p>
+
+<p>L'avantage de l'approche <code>proxy.onRequest</code> est que le code qui implémente votre stratégie de proxy s'exécute dans le script d'arrière-plan de votre extension pour accéder aux API WebExtension disponibles pour votre extension (y compris, par exemple, l'accès au <code><a href="/fr/Add-ons/WebExtensions/API/storage">stockage</a></code> et au réseau de votre extension APIs comme <code><a href="/fr/Add-ons/WebExtensions/API/dns">dns</a></code>).</p>
+
+<p>En dehors de cette API, les extensions peuvent également utiliser la propriété  <code><a href="/fr/Add-ons/WebExtensions/API/browserSettings/proxyConfig">browserSettings.proxyConfig</a></code> pour configurer les paramètres proxy globaux.</p>
+
+<p>Google Chrome fournit <a href="https://developer.chrome.com/extensions/proxy">une API d'extension également appelée "proxy"</a> qui est fonctionnellement similaire à cette API, dans la mesure où les extensions peuvent l'utiliser pour implémenter une politique de proxy. Cependant, la conception de l'API Chrome est complètement différente de cette API. Étant donné que cette API est incompatible avec l'API de <code>proxy</code> Chrome, cette API est uniquement disponible via l'espace de noms du <code>navigateur</code>.</p>
+
+<p>Pour utiliser cette API, vous devez disposer de la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">permission</a> "proxy". De plus, lorsque vous voulez intercepter des requêtes, vous avez également besoin de la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permission de l'hôte</a> pour les URL des requêtes interceptées</p>
+
+<h2 id="Types">Types</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("proxy.ProxyInfo")}}</dt>
+ <dd>Décrit un proxy.</dd>
+ <dt>{{WebExtAPIRef("proxy.RequestDetails")}}</dt>
+ <dd>
+ <p>Contient des informations sur une requête Web que le navigateur est sur le point de faire.</p>
+ </dd>
+</dl>
+
+<h2 id="Properties">Properties</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("proxy.settings")}}</dt>
+ <dd>Obtenir et définir les paramètres de proxy.</dd>
+</dl>
+
+<h2 id="Functions">Functions</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("proxy.register()")}}</dt>
+ <dd>Enregistre le script proxy donné.</dd>
+ <dt>{{WebExtAPIRef("proxy.unregister()")}}</dt>
+ <dd>Annule l'inscription du script proxy.</dd>
+</dl>
+
+<h2 id="Events">Events</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("proxy.onError")}}</dt>
+ <dd>Lancé lorsque le système rencontre une erreur lors de l'exécution du script PAC ou de l'écouteur <code>onRequest</code>.</dd>
+ <dt>{{WebExtAPIRef("proxy.onRequest")}}</dt>
+ <dd>Déclenché lorsqu'une requête Web est sur le point d'être effectuée, ce qui donne à l'extension l'opportunité de l'utiliser comme proxy.</dd>
+</dl>
+
+<p>{{WebExtExamples("h2")}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p>{{Compat("webextensions.api.proxy")}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html
new file mode 100644
index 0000000000..fb5e7df4e5
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/onproxyerror/index.html
@@ -0,0 +1,60 @@
+---
+title: proxy.onProxyError
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/onProxyError
+tags:
+ - API
+ - Add-ons
+ - Event
+ - Proxy
+ - Reference
+ - WebExtensions
+ - onProxyError
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/onError
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Lancé en cas d'erreur lors de l'évaluation du fichier PAC ou l'écouteur <code>onRequest</code>.</p>
+
+<p>L'erreur peut être déclenchée en lançant ou renvoyant une valeur invalide dans le gestionnaire d'événements proxy.onRequest.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.proxy.onError.addListener(listener)
+browser.proxy.onError.removeListener(listener)
+browser.proxy.onError.hasListener(listener)
+</pre>
+
+<p>Les événements ont trois fonctions :</p>
+
+<dl>
+ <dt><code>addListener(listener)</code></dt>
+ <dd>Ajoute un écouteur à cet événement.</dd>
+ <dt><code>removeListener(listener)</code></dt>
+ <dd>Arrêtez d'écouter cet événement. L'argument <code>listener</code> est l'écouteur à supprimer.</dd>
+ <dt><code>hasListener(listener)</code></dt>
+ <dd>Vérifiez si l'<code>écouteur</code> est enregistré pour cet événement. Renvoie <code>true</code> s'il écoute, sinon <code>false</code>.</dd>
+</dl>
+
+<h2 id="Syntaxe_addListener">Syntaxe addListener</h2>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>
+ <p>Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :</p>
+
+ <dl class="reference-values">
+ <dt><code>newState</code></dt>
+ <dd><code>Object</code>. Un objet <a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error">Error</a> représentant l'erreur.</dd>
+ </dl>
+ </dd>
+</dl>
+
+<p>{{WebExtExamples}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p>{{Compat("webextensions.api.proxy.onError")}}</p>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/onrequest/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/onrequest/index.html
new file mode 100644
index 0000000000..5510f36a7c
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/onrequest/index.html
@@ -0,0 +1,107 @@
+---
+title: proxy.onRequest
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/onRequest
+tags:
+ - API
+ - Add-ons
+ - Event
+ - Extensions
+ - Proxy
+ - Reference
+ - WebExtensions
+ - onRequest
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/onRequest
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Déclenché lorsqu'une requête Web est sur le point d'être effectuée, pour donner à l'extension la possibilité de l'utiliser comme proxy.</p>
+
+<p>Cet événement est étroitement modélisé sur les événements définis dans l'API  <code><a href="/fr/Add-ons/WebExtensions/API/webRequest">webRequest</a></code> Comme ces événements, sa fonction <code>addListener()</code> prend trois arguments :</p>
+
+<ul>
+ <li>l'écouteur qui sera appelé lorsque l'événement est déclenché.</li>
+ <li>Un objet <code><a href="/fr/Add-ons/WebExtensions/API/webRequest/RequestFilter">RequestFilter</a></code> contrôlant quelles requêtes provoquent le déclenchement de l'événement.</li>
+ <li>un tableau de chaînes pour contrôler d'autres aspects du comportement de l'événement.</li>
+</ul>
+
+<p>L'événement est déclenché avant l'un des événements <code>webRequest</code> pour la même demande.</p>
+
+<p>Lorsque l'événement est déclenché, l'écouteur est appelé avec un objet contenant des informations sur la requête. L'écouteur renvoie un objet {{WebExtAPIRef("proxy.ProxyInfo")}} représentant un proxy à utiliser (ou un tableau de tels objets, permettant au navigateur de basculer si un proxy est inaccessible).</p>
+
+<p>Pour utiliser <code>proxy.onRequest</code>, une extension doit avoir la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">permission API</a> "proxy" , ainsi que la <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permission d'hôte</a> pour les URL des requêtes qu'elle intercepte - ela signifie essentiellement que les modèles de correspondance de l'argument <code>filter</code> doivent être un sous-ensemble de l'extension autorisations de l'hôte.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">browser.proxy.onRequest.addListener(
+ listener, // function
+ filter, // object
+ extraInfoSpec // optional array of strings
+)
+browser.proxy.onRequest.removeListener(listener)
+browser.proxy.onRequest.hasListener(listener)
+</pre>
+
+<p>Les événements ont trois fonctions :</p>
+
+<dl>
+ <dt><code>addListener(listener, filter, extraInfoSpec)</code></dt>
+ <dd>Ajoute un écouteur à cet événement.</dd>
+ <dt><code>removeListener(listener)</code></dt>
+ <dd>Arrêtez d'écouter cet événement. L'argument <code>listener</code> est l'écouteur à supprimer.</dd>
+ <dt><code>hasListener(listener)</code></dt>
+ <dd>Vérifiez si <code>listener</code> est enregistré pour cet événement. Renvoie <code>true</code> s'il écoute, sinon <code>false</code>.</dd>
+</dl>
+
+<h2 id="Syntaxe_addListener">Syntaxe addListener</h2>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>listener</code></dt>
+ <dd>
+ <p>Fonction qui sera appelée lorsque cet événement se produit. La fonction passera un seul argument, qui est un objet {{WebExtAPIRef("proxy.RequestDetails")}} contenant les détails de la requête.</p>
+
+ <p>L'écouteur peut renvoyer l'un des éléments suivants:</p>
+
+ <ul>
+ <li>un objet {{WebExtAPIRef("proxy.ProxyInfo")}}</li>
+ <li>un tableau d'objets <code>proxy.ProxyInfo</code></li>
+ <li>Une <code>Promise</code> qui se résout en un objet <code>ProxyInfo</code></li>
+ <li>Une <code>Promise</code> qui résout en un tableau d'objets <code>ProxyInfo</code>.</li>
+ </ul>
+
+ <p>Si l'écouteur renvoie un tableau, ou une Promesse qui se résout en un tableau, alors tous les objets<code>ProxyInfo</code> après le premier représentent les basculements: si le proxy à la position N dans le tableau n'est pas accessible quand son <code>ProxyInfo.failoverTimeout</code> alors le navigateur essayez le proxy à la position N+1.</p>
+
+ <p>S'il y a une erreur spécifiant les objets <code>proxy.ProxyInfo</code> objects, alors {{WebExtAPIRef("proxy.onError")}} sera appelé.</p>
+ </dd>
+ <dt><code>filter</code></dt>
+ <dd>{{WebExtAPIRef('webRequest.RequestFilter')}}. Un ensemble de filtres qui limite les événements qui seront envoyés à cet écouteur.</dd>
+ <dt><code>extraInfoSpec</code> {{optional_inline}}</dt>
+ <dd><code>array</code> de <code>string</code>. Options supplémentaires pour l'événement. Vous pouvez passer une seule valeur<span class="im">, <code>"requestHeaders"</code>, </span>pour inclure les en-têtes de demande dans l'objet de<span class="im"> <code>details</code> </span>transmis à l'écouteur<span class="im">.</span></dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.proxy.onRequest", 10)}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Ce code intercepte les requêtes à <code>&lt;all_urls&gt;</code>, et les envoie par procuration si elles ne sont pas destinées à un cadre de premier niveau.</p>
+
+<pre class="brush: js">function shouldProxyRequest(requestInfo) {
+ return requestInfo.parentFrameId != -1;
+}
+
+function handleProxyRequest(requestInfo) {
+ if (shouldProxyRequest(requestInfo)) {
+ console.log(`Proxying: ${requestInfo.url}`);
+ return {type: "http", host: "127.0.0.1", port: 65535};
+ }
+ return {type: "direct"};
+}
+
+browser.proxy.onRequest.addListener(handleProxyRequest, {urls: ["&lt;all_urls&gt;"]});</pre>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.html
new file mode 100644
index 0000000000..f0b693855a
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/proxyinfo/index.html
@@ -0,0 +1,63 @@
+---
+title: proxy.ProxyInfo
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
+tags:
+ - Add-ons
+ - Extensions
+ - Proxy
+ - ProxyInfo
+ - Type
+ - WebExtensions
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Contient des informations sur un proxy. Cet objet, ou un tableau de ces objets, est renvoyé par le programme d'écoute à {{WebExtAPIRef("proxy.onRequest")}}. Il indique au navigateur si la requête doit être mandatée et, dans l'affirmative, quel proxy utiliser.</p>
+
+<h2 id="Type">Type</h2>
+
+<p>Les valeurs de ce type sont des objets. Ils contiennent les propriétés suivantes :</p>
+
+<dl class="reference-values">
+ <dt><code>type</code></dt>
+ <dd>
+ <p><code>string</code>. Cela indique s'il faut utiliser un proxy et, dans l'affirmative, quel type de proxy utiliser. Il peut prendre l'une des valeurs suivantes :</p>
+
+ <ul>
+ <li><code>"direct"</code>: ne pas utiliser la requête par procuration. Si cette valeur est donnée, toutes les autres propriétés de cet objet sont ignorées.</li>
+ <li><code>"http"</code>: HTTP proxy (ou SSL CONNECT pour HTTPS)</li>
+ <li><code>"https"</code>: HTTP proxying via TLS connection au proxy</li>
+ <li><code>"socks"</code>: proxy SOCKS v5</li>
+ <li><code>"socks4"</code>: proxy SOCKS v4</li>
+ </ul>
+ </dd>
+ <dt><code>host</code></dt>
+ <dd><code>string</code>. Le nom d'hôte du serveur proxy. Obligatoire sauf si le <code>type</code> est <code>"direct"</code>.</dd>
+ <dt><code>port</code></dt>
+ <dd><code>string</code>. e numéro de port du serveur proxy. Obligatoire sauf si le <code>type</code> est  <code>"direct"</code>.</dd>
+ <dt><code>username</code></dt>
+ <dd><code>string</code>. Nom d'utilisateur pour le service proxy. Ceci est utilisable avec "socks".  Pour les autorisations de proxy HTTP, utilisez <a href="/fr/Add-ons/WebExtensions/API/webRequest/onAuthRequired" title="Fired when the server sends a 401 or 407 status code: that is, when the server is asking the client to provide authentication credentials such as a username and password."><code>webRequest.onAuthRequired</code></a>.</dd>
+ <dt><code>password</code></dt>
+ <dd><code>string</code>. Mot de passe pour le service proxy. Ceci est utilisable avec "socks". FPour les autorisations de proxy HTTP, utilisez <a href="/fr/Add-ons/WebExtensions/API/webRequest/onAuthRequired" title="Fired when the server sends a 401 or 407 status code: that is, when the server is asking the client to provide authentication credentials such as a username and password."><code>webRequest.onAuthRequired</code></a>.</dd>
+ <dt><code>proxyDNS</code></dt>
+ <dd><code>boolean</code>. Si vrai, le serveur proxy est utilisé pour résoudre certaines requêtes DNS (uniquement utilisable avec <code>"socks4"</code> et <code>"socks"</code>).  Par défaut à <code>false</code>.</dd>
+ <dt><code>failoverTimeout</code></dt>
+ <dd><code>number</code>:  Délais de basculement en secondes. Si la connexion ne parvient pas à connecter le serveur proxy après ce nombre de secondes, le serveur proxy suivant dans le tableau renvoyé par l'écouteur <code>proxy.onRequest</code> sera utilisé.</dd>
+</dl>
+
+<dl>
+ <dt><code>proxyAuthorizationHeader</code></dt>
+ <dd><code>string.</code> Cette chaîne, si elle est définie sur non-vide, est passée directement en valeur à l'en-tête de requête {{httpheader("Proxy-Authorization")}} envoyé aux proxies HTTP dans le cadre des requêtes HTTP ordinaires et des requêtes CONNECT. Simplement dit, ceci peut être utilisé pour s'authentifier directement sur les proxies HTTP nécessitant une authentification (non contestable).<br>
+ <br>
+ Par exemple, si vous voulez envoyer "nom d'utilisateur" et "mot de passe" pour l'authentification "basique", vous pouvez définir la propriété <code>proxyAuthorizationHeader</code> à <code>Basic dXNlcm5hbWU6cGFzc3dvcmQ=</code></dd>
+ <dt><code>connectionIsolationKey </code> {{optional_inline}}</dt>
+ <dd><code>string.</code> Une clé optionnelle utilisée pour l'isolation supplémentaire de cette connexion proxy.</dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.proxy.ProxyInfo")}}</p>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/register/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/register/index.html
new file mode 100644
index 0000000000..1d64b5a5e3
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/register/index.html
@@ -0,0 +1,161 @@
+---
+title: proxy.register()
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/register
+tags:
+ - API
+ - Add-ons
+ - Function
+ - Méthode
+ - Proxy
+ - Reference
+ - WebExtensions
+ - register
+ - registerProxyScript
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/register
+---
+<p>{{AddonSidebar()}} {{deprecated_header}}</p>
+
+<p>Cette méthode était obsolète dans Firefox 68 et sera supprimée de Firefox 71. Dans Firefox 68 ou une version ultérieure, l'appel de cette méthode enregistre un message d'erreur sur la console :</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/16799/proxy_register_warning.png" style="border: 1px solid black; display: block; height: 65px; margin: 0px auto; width: 800px;"></p>
+
+<p>Enregistre un <a href="/fr/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_%28PAC%29_file">fichier PAC (Proxy Auto-Configuration)</a>. Le fichier est exécuté immédiatement, et sa fonction <code>FindProxyForURL()</code> sera appelée pour toutes les demandes HTTP, HTTPS ou FTP.</p>
+
+<p>Si les fichiers PAC sont enregistrés par plusieurs extensions, les demandes seront initialement transmises à celle qui a été enregistrée en premier.</p>
+
+<ul>
+ <li>Si la fonction <code>FindProxyForURL()</code> dans le premier PAC renvoie "DIRECT" pour une demande, alors la demande sera transmise inchangée à la fonction  <code>FindProxyForURL()</code> dans le prochain PAC.</li>
+ <li>Si la fonction <code>FindProxyForURL()</code> dans le premier PAC transfère la requête en renvoyant "PROXY" ou une autre valeur proxy, l'URL du proxy sera transmise à la fonction <code>FindProxyForURL()</code> dans le prochain PAC.</li>
+</ul>
+
+<p>Chaque extension ne peut enregistrer qu'un seul fichier PAC : si vous appelez  <code>register()</code> deux fois, le second fichier PACremplacera le premier.</p>
+
+<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Communiquez_avec_les_fichiers_PAC">Communiquez avec les fichiers PAC</h2>
+
+<p>Vous pouvez échanger des messages entre le fichier PAC et la page d'arrière-plan de votre extension (ou toute autre page privilégiée, comme les pages contextuelles) en utilisant <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage">runtime.sendMessage()</a></code> et <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage">runtime.onMessage</a></code>.</p>
+
+<p>Pour envoyer un message au fichier PAC, vous devez définir l'option <code>toProxyScript</code> :</p>
+
+<pre class="brush: js">// background.js
+
+// Log any messages from the proxy.
+browser.runtime.onMessage.addListener((message, sender) =&gt; {
+ if (sender.url === browser.extension.getURL(proxyScriptURL)) {
+ console.log(message);
+ }
+});
+
+let messageToProxy = {
+ enabled: true,
+ foo: "A string",
+ bar: 1234
+};
+
+browser.runtime.sendMessage(messageToProxy, {toProxyScript: true});</pre>
+
+<pre class="brush: js">// pac.js
+
+browser.runtime.onMessage.addListener((message) =&gt; {
+ if (message.enabled) {
+ browser.runtime.sendMessage("I'm enabled!");
+ }
+});</pre>
+
+<h2 id="Spécification_de_fichier_PAC">Spécification de fichier PAC</h2>
+
+<p>La syntaxe de base du fichier PAC est décrite dans la <a href="/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file">documentation PAC</a>, mais l'implémentation utilisée par l'API proxy diffère de la conception PAC standard de différentes manières, décrites dans cette section.</p>
+
+<h3 id="Valeur_retournée_FindProxyForURL">Valeur retournée FindProxyForURL()</h3>
+
+<p>La norme <code>FindProxyForURL()</code> <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_%28PAC%29_file#Return_value_format">renvoie une chaîne</a>. Dans Firefox 55 et 56, le fichier PAC utilisé avec l'API proxy renvoie également une chaîne. Dans Firefox 55 <em>seulement</em>, vous devez passer un argument à la valeur de retour "DIRECT", même s'il n'a pas besoin d'argument.</p>
+
+<p>À partir de Firefox 57, <code>FindProxyForURL()</code> peut toujours renvoyer une chaîne, mais peut également (et de préférence) renvoyer un tableau d'objets  {{WebExtAPIRef("proxy.ProxyInfo")}}.</p>
+
+<p>Si le tableau contient plus d'un objet, alors tous les objets <code>ProxyInfo</code> après le premier représentent les basculements : si le proxy à la position N dans le tableau n'est pas accessible quand son <code>ProxyInfo.failoverTimeout</code> expire, alors le navigateur essaiera le proxy à la position N + 1.</p>
+
+<p>Par exemple :</p>
+
+<pre class="brush: js" id="ct-0">const proxySpecification = [
+ {
+ type: "socks",
+ host: "foo.com",
+ port: 1080,
+ proxyDNS: true,
+ failoverTimeout: 5
+ },
+ {
+ type: "socks",
+ host: "bar.com",
+ port: 1060,
+ }
+];</pre>
+
+<p>Le premier proxy dans le tableau sera essayé en premier. S'il ne répond pas dans <code>failoverTimeout</code> secondes, le prochain sera essayé, jusqu'à ce que la fin du tableau est atteint.</p>
+
+<h3 id="Environnement_du_fichier_PAC">Environnement du fichier PAC</h3>
+
+<p>Les fonctions globales d'assistance généralement disponibles pour les fichiers PAC  (<code><a href="/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file#isPlainHostName()_2">isPlainHostName()</a></code>, <code><a href="/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file#dnsDomainIs()">dnsDomainIs()</a></code>, etc) ne sont pas disponibles.</p>
+
+<p>Le code qui s'exécute dans le fichier PAC n'a pas accès à :</p>
+
+<ul>
+ <li>outes les fonctions DOM (par exemple, <a href="/en-US/docs/Web/API/Window">window</a> ou l'une de ses propriétés)</li>
+ <li>les API WebExtension sauf <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage">runtime.sendMessage()</a></code> et <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage">runtime.onMessage</a></code></li>
+ <li>l' <a href="/en-US/docs/Web/API/Console">API console</a> - pour consigner les messages d'un PAC, envoyez un message au script d'arrière-plan :</li>
+</ul>
+
+<pre class="brush: js">// pac.js
+
+// send the log message to the background script
+browser.runtime.sendMessage(`Proxy-blocker: blocked ${url}`);</pre>
+
+<pre class="brush: js">// background-script.js
+
+function handleMessage(message, sender) {
+ // only handle messages from the proxy script
+ if (sender.url != browser.extension.getURL(proxyScriptURL)) {
+ return;
+ }
+ console.log(message);
+}
+
+browser.runtime.onMessage.addListener(handleMessage);</pre>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">var registering = browser.proxy.register(
+ url // string
+)
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<dl>
+ <dt><code>url</code></dt>
+ <dd><code>String</code>. URL pointant vers le fichier PAC à charger. Les fichiers PAC doivent être groupés avec l'extension, et l'<code>url</code> doit être relative au fichier <a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a> de l'extension.</dd>
+</dl>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera remplie sans argument lorsque le fichier PAC a été enregistré ou rejetée en cas d'erreur.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<pre class="brush: js">const proxyScriptURL = "proxy/proxy-script.js";
+
+browser.proxy.register(proxyScriptURL);</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.proxy.register")}}</p>
+
+<div class="note"><strong>Remerciements :</strong>
+
+<p>Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.</p>
+</div>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/requestdetails/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/requestdetails/index.html
new file mode 100644
index 0000000000..6d2cc7d34b
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/requestdetails/index.html
@@ -0,0 +1,60 @@
+---
+title: proxy.RequestDetails
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/RequestDetails
+tags:
+ - Add-ons
+ - Extensions
+ - Proxy
+ - RequestDetails
+ - Type
+ - WebExtensions
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/RequestDetails
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Contient des informations sur une requête Web que le navigateur est sur le point de faire. Une instance de cet objet est passée dans l'écouteur  {{WebExtAPIRef("proxy.onRequest")}}.</p>
+
+<h2 id="Type">Type</h2>
+
+<p>Les valeurs de ce type sont des objets. Ils contiennent les propriétés suivantes :</p>
+
+<dl class="reference-values">
+ <dt><code>cookieStoreId</code></dt>
+ <dd><code>string</code>. L'ID de magasin de cookies du contexte actuel.</dd>
+ <dt><code>documentUrl</code></dt>
+ <dd><code>string</code>. URL de la page dans laquelle la ressource demandée sera chargée.</dd>
+ <dt><code>frameId</code></dt>
+ <dd><code>integer</code>. Zéro si la requête se produit dans le cadre principal; une valeur positive est l'ID d'une sous-trame dans laquelle la requête se produit. Si le document d'une  (sous-)frame est chargé (<code>type</code> est <code>main_frame</code> ou <code>sub_frame</code>), <code>frameId</code> indique l'ID de cette trame, pas l'ID de la trame externe. Les ID de cadre sont uniques dans un onglet.</dd>
+ <dt><code>fromCache</code></dt>
+ <dd><code>boolean</code>. Indique si cette réponse sera récupérée du cache disque.</dd>
+ <dt><code>incognito</code></dt>
+ <dd><code>boolean</code> <code>true</code> pour les demandes de navigation privées</dd>
+ <dt><code>ip</code></dt>
+ <dd>L'adresse IP du serveur à laquelle la demande sera envoyée. Notez qu'il peut s'agir d'une adresse IPv6 littérale.</dd>
+ <dt><code>method</code></dt>
+ <dd><code>string</code>. Méthode HTTP standard: par exemple, "GET" ou "POST".</dd>
+ <dt><code>originUrl</code></dt>
+ <dd><code>string</code>. URL de la ressource qui a déclenché cette demande. Notez que ceci peut ne pas être le même que l'URL de la page dans laquelle la ressource demandée sera chargée. Par exemple, si un document déclenche un chargement dans une fenêtre différente l'<a href="/fr/docs/Web/HTML/Element/a#attr-target">attribut cible d'un lien</a>, ou d'un document CSS inclut une image utilisant la  <a href="/fr/docs/Web/CSS/url#The_url()_functional_notation"><code>notation fonctionnelle url()</code></a>, alors ce sera l'URL du document original ou du  document CSS, respectivement.</dd>
+ <dt><code>parentFrameId</code></dt>
+ <dd><code>integer</code>. ID de l'image qui contient l'image qui a envoyé la demande. Défini sur -1 si aucun cadre parent n'existe.</dd>
+ <dt><code>requestId</code></dt>
+ <dd><code>string</code>. L'ID de la demande Les ID de demande sont uniques dans une session de navigateur, vous pouvez donc les utiliser pour associer différents événements associés à la même demande.</dd>
+ <dt><code>requestHeaders</code>{{optional_inline}}</dt>
+ <dd>{{WebExtAPIRef('webRequest.HttpHeaders')}}. Les en-têtes de requête HTTP qui vont être envoyés avec cette requête. Notez que ceci n'est inclus que si l'option  <code>"requestHeaders"</code> a été passée dans <code>addListener()</code>.</dd>
+ <dt><code>tabId</code></dt>
+ <dd><code>integer</code>. ID de l'onglet dans lequel la requête a lieu. Défini sur -1 si la requête n'est pas liée à un onglet.</dd>
+ <dt><code>timeStamp</code></dt>
+ <dd><code>number</code>. L'heure à laquelle cet événement s'est déclenché, en <a class="external external-icon" href="https://en.wikipedia.org/wiki/Unix_time">millisecondes depuis l'époque</a>.</dd>
+ <dt><code>type</code></dt>
+ <dd>{{WebExtAPIRef('webRequest.ResourceType')}}. Le type de ressource demandé : par exemple, "image", "script", "stylesheet".</dd>
+ <dt><code>url</code></dt>
+ <dd><code>string</code>. Cible de la demande.</dd>
+</dl>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.proxy.RequestDetails")}}</p>
+
+<p>{{WebExtExamples}}</p>
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/unregister/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/unregister/index.html
new file mode 100644
index 0000000000..6086fe0c6f
--- /dev/null
+++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/unregister/index.html
@@ -0,0 +1,55 @@
+---
+title: proxy.unregister()
+slug: Mozilla/Add-ons/WebExtensions/API/proxy/unregister
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Méthode
+ - Proxy
+ - Reference
+ - WebExtensions
+ - unregister
+translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/unregister
+---
+<div>{{AddonSidebar()}}</div>
+
+<div>{{deprecated_header}}</div>
+
+<p>Cette méthode était obsolète dans Firefox 68 et sera supprimée de Firefox 71. Dans Firefox 68 ou une version ultérieure, l'appel de cette méthode enregistre un message d'erreur sur la console:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/16800/proxy_unregister_warning.png" style="border: 1px solid black; display: block; height: 86px; margin: 0 auto; width: 800px;"></p>
+
+<p>Annule l'inscription d'un <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_%28PAC%29_file">fichier Proxy Auto-Configuration (PAC)</a>. Cela a été enregistré par un appel précédent à {{WebExtAPIRef("proxy.register()")}}.</p>
+
+<p>C'est une fonction asynchrome qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox brush:js">var unregistering = browser.proxy.unregister()
+</pre>
+
+<h3 id="Paramètres">Paramètres</h3>
+
+<p>None.</p>
+
+<h3 id="Valeur_retournée">Valeur retournée</h3>
+
+<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code> qui sera remplie  sans arguments lorsque le fichier PAC a été désinscrit.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<pre class="brush: js">browser.proxy.unregister();</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.proxy.unregister")}}</p>
+
+<div class="note"><strong>Remerciements :</strong>
+
+<p>Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.</p>
+</div>