proxy.onRequest
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.
Cet événement est étroitement modélisé sur les événements définis dans l'API webRequest Comme ces événements, sa fonction addListener() prend trois arguments :
- l'écouteur qui sera appelé lorsque l'événement est déclenché.
- Un objet
RequestFiltercontrôlant quelles requêtes provoquent le déclenchement de l'événement. - un tableau de chaînes pour contrôler d'autres aspects du comportement de l'événement.
L'événement est déclenché avant l'un des événements webRequest pour la même demande.
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 proxy.ProxyInfo représentant un proxy à utiliser (ou un tableau de tels objets, permettant au navigateur de basculer si un proxy est inaccessible).
Pour utiliser proxy.onRequest, une extension doit avoir la permission API "proxy" , ainsi que la permission d'hôte pour les URL des requêtes qu'elle intercepte - ela signifie essentiellement que les modèles de correspondance de l'argument filter doivent être un sous-ensemble de l'extension autorisations de l'hôte.
Syntaxe
browser.proxy.onRequest.addListener(
listener, // function
filter, // object
extraInfoSpec, // optional array of strings
);
browser.proxy.onRequest.removeListener(listener);
browser.proxy.onRequest.hasListener(listener);
Les événements ont trois fonctions :
addListener(listener, filter, extraInfoSpec)-
Ajoute un écouteur à cet événement.
removeListener(listener)-
Arrêtez d'écouter cet événement. L'argument
listenerest l'écouteur à supprimer. hasListener(listener)-
Vérifiez si
listenerest enregistré pour cet événement. Renvoietrues'il écoute, sinonfalse.
Syntaxe addListener
>Paramètres
listener-
Fonction qui sera appelée lorsque cet événement se produit. La fonction passera un seul argument, qui est un objet
proxy.RequestDetailscontenant les détails de la requête.L'écouteur peut renvoyer l'un des éléments suivants:
- un objet
proxy.ProxyInfo - un tableau d'objets
proxy.ProxyInfo - Une
Promisequi se résout en un objetProxyInfo - Une
Promisequi résout en un tableau d'objetsProxyInfo.
Si l'écouteur renvoie un tableau, ou une Promesse qui se résout en un tableau, alors tous les objets
ProxyInfoaprès le premier représentent les basculements: si le proxy à la position N dans le tableau n'est pas accessible quand sonProxyInfo.failoverTimeoutalors le navigateur essayez le proxy à la position N+1.S'il y a une erreur spécifiant les objets
proxy.ProxyInfoobjects, alorsproxy.onErrorsera appelé. - un objet
filter-
webRequest.RequestFilter. Un ensemble de filtres qui limite les événements qui seront envoyés à cet écouteur. extraInfoSpecFacultatif-
arraydestring. Options supplémentaires pour l'événement. Vous pouvez passer une seule valeur,"requestHeaders", pour inclure les en-têtes de demande dans l'objet dedetailstransmis à l'écouteur.
Compatibilité des navigateurs
Chargement…
Exemples
Ce code intercepte les requêtes à <all_urls>, et les envoie par procuration si elles ne sont pas destinées à un cadre de premier niveau.
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: ["<all_urls>"],
});