Comment puis-je modifier les paramètres de proxy de Firefox à partir d'un programme externe?

StackOverflow https://stackoverflow.com/questions/404729

  •  03-07-2019
  •  | 
  •  

Question

J'ai vu quelques programmes (par exemple, Charles Web Developer Proxy) capables de modifier les paramètres de proxy de Firefox. La séquence est la suivante:

  1. Firefox est en cours d'exécution, avec les paramètres de proxy des utilisateurs.
  2. L'utilisateur lance l'application tierce externe, qui
  3. modifie les paramètres de proxy de Firefox, puis
  4. l'utilisateur quitte le programme tiers et
  5. Firefox continue de fonctionner avec ses paramètres de proxy d'origine.

En supposant que l'application externe se souvienne des anciens paramètres de proxy et les restaure à la sortie, comment puis-je lire et écrire les paramètres de proxy de Firefox? J'ai essayé de googler dans le doco de Firefox, mais pas de chance pour l'instant.

Options envisagées:

  • Écrivez un nouveau fichier de configuration des préférences utilisateur et démarrez une nouvelle instance du navigateur. Cela fonctionnerait mais ne serait pas tout à fait correct - Charles, par exemple, peut modifier les paramètres d'un navigateur en cours d'exécution et les restaurer sans redémarrer.
  • Écrivez un plug-in. Pourrait écrire un plugin Firefox offrant une sorte d’IPC à l’extérieur, puis gérer le paramètre de préférence de Firefox lui-même. En fait, je pense que cela pourrait être le seul moyen. La désactivation du plug-in Firefox de Charles semble désactiver sa capacité à modifier les préférences à la volée.

Ressources possibles

Était-ce utile?

La solution

D'après ce que j'ai pu voir dans la documentation, Charles a une extension Firefox correspondante qu'il installe / utilise. C'est peut-être comment il peut recharger les informations de proxy à la volée.

Les informations de proxy sont stockées dans le fichier prefs.js de votre profil, mais ne peuvent pas être rechargées à la volée. Firefox le lit au démarrage et y écrit quand il s'arrête, et ne se charge pas entre les deux. De plus, si Firefox est en cours d’exécution lorsque vous modifiez prefs.js, vos modifications seront écrasées.

Je pensais que vous pourriez peut-être faire quelque chose avec un fichier PAC, mais après avoir fouillé un peu, j'ai constaté qu'il ne semblait pas non plus être rechargé à la volée. Vous devrez redémarrer pour recharger les modifications apportées aux paramètres.

Autres conseils

Vous voudrez peut-être voir comment Fiddler procède (www.fiddler2.com). Le dossier C: \ program files \ fiddler2 \ fiddlerhook \ a une extension Firefox qui indique comment procéder.

Tous les paramètres de proxy pour Firefox, sur ma machine, sont stockés dans C: \ DOCUME ~ 1 \ BRUCEX ~ 1 \ APPLIC ~ 1 \ Mozilla \ Firefox \ Profiles \ licga1pg.default \ prefs.js. L'en-tête de ce fichier indique

# Mozilla User Preferences

/* Do not edit this file.
 *
 * If you make changes to this file while the application is running,
 * the changes will be overwritten when the application exits.
 *
 * To make a manual change to preferences, you can visit the URL about:config
 * For more information, see http://www.mozilla.org/unix/customizing.html#prefs
 */

Le lien vers customizing.html est ici . Donc, en théorie, vous pouvez modifier tout ou partie de ces

user_pref("network.proxy.backup.ftp", "squid.home-server");
user_pref("network.proxy.backup.ftp_port", 3128);
user_pref("network.proxy.backup.gopher", "squid.home-server");
user_pref("network.proxy.backup.gopher_port", 3128);
user_pref("network.proxy.backup.socks", "squid.home-server");
user_pref("network.proxy.backup.socks_port", 3128);
user_pref("network.proxy.backup.ssl", "squid.home-server");
user_pref("network.proxy.backup.ssl_port", 3128);
user_pref("network.proxy.ftp", "squid.home-server");
user_pref("network.proxy.ftp_port", 3128);
user_pref("network.proxy.gopher", "squid.home-server");
user_pref("network.proxy.gopher_port", 3128);
user_pref("network.proxy.http", "squid.home-server");
user_pref("network.proxy.http_port", 3128);
user_pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1, *.my-domain");
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "squid.home-server");
user_pref("network.proxy.socks_port", 3128);
user_pref("network.proxy.ssl", "squid.home-server");
user_pref("network.proxy.ssl_port", 3128);
user_pref("network.proxy.type", 1);

bien que le problème soit de faire en sorte que Firefox les relise.

Si vous consultez certains des liens figurant dans les réponses à ma question précédente vous pouvez trouver du code que vous pouvez utiliser pour modifier les paramètres de proxy comme vous le souhaitez.

Il existe une connexion ActiveX à Firefox via Contrôle ActiveX pour l'hébergement Plug-in Netscape dans IE mais j'ai des doutes si cela va être d'aucune aide. Ça vaut quand même le coup d'oeil.

Même si j’étais confronté au problème des paramètres de connexion définis pour utiliser un proxy manuel, cela n’a pas été pris en compte lors du lancement du navigateur Firefox à partir d’une application tierce (je travaille sur sélénium)

J'en ai marre d'ajouter un fichier users.js dans C: \ Program Files \ Mozilla Firefox \ defaults \ profile

avec les modifications suggérées ci-dessus (ajout de user_pref), mais mon navigateur Firefox ne récupérait toujours pas les modifications mentionnées. Même chose même sur mes prefs.js au même endroit (en fait, mes prefs.js sont vides !!)

Mais j'ai un autre moyen de le faire ... dans C: \ Program Files \ Mozilla Firefox \ greprefs \ all.js, effectuez les modifications suggérées ci-dessus pref ("type.proxy.réseau", 0); à 1 pref ("network.proxy.http", ""); à localhost pref ("network.proxy.http_port", 0); à 4444

et les choses ont commencé à fonctionner .. Mais je ne suis pas sûr que ce soit la bonne façon de le faire, car nous modifions un fichier dans le répertoire d'installation. BTW est-ce un bug avec firefox?

Appréciez vos commentaires

J’ai essayé de télécharger le sélénium rc 1.0.3 et d’utiliser * chrome /usr/lib/firefox-3.0.10/firefox-bin suivi de l’URL du fichier AUT.Il a fonctionné. Ils auraient supprimé le * mode personnalisé de en cours d'exécution à partir de la version 1.0.3 (à mon avis), car, en décompressant le fichier sélenium-server.jar, je n'ai trouvé aucun fichier custom.class, contrairement aux versions antérieures dans lesquelles un fichier custom.class était présent dans le sélénium-serveur. Fichier .jar.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top