Comment peut-on changer un paramètre de configuration de Firefox à partir de la CLI


5

Mon objectif est de pouvoir automatiser la modification d'un paramètre de configuration sans avoir à redémarrer l'instance Firefox en cours d'exécution. En particulier, je souhaite modifier le type de proxy réseau. Ainsi, par exemple, l'idéal serait quelque chose du genre

firefox --set network.proxy.type "1"

ou

firefox --network-proxy-type "1"

Actuellement, ma solution consiste à utiliser une extension appelée "QuickProxy" qui me permet d'activer ou de désactiver le paramètre de proxy en un simple clic sur le bouton de la barre d'état QuickProxy. (Évidemment, cette solution de contournement ne fonctionne pas si vous devez modifier d'autres paramètres)

Il s’agit toutefois d’une étape supplémentaire. Pour tout le reste, le paramètre Proxy est géré de manière dynamique via un script qui se connecte à Network Manager (On Kubuntu Linux), ce qui déclenche, en fonction de l’adresse IP attribuée, l’activation ou la désactivation de l’utilisation du proxy. Seul Firefox ne peut pas (actuellement) être ainsi géré.

J'imagine qu'il peut y avoir un moyen de créer un type "paramètres" Mime pouvant modifier un paramètre de configuration, afin que je puisse faire quelque chose de similaire à:

firefox file:///tmp/turn-proxy-on.settings

Ou peut-être un add-on qui permettra à Firefox de comprendre les nouvelles options de la CLI pour y parvenir ...

Mais toute autre méthode de script permettant de modifier le paramètre dans une instance de Firefox en cours d'exécution suffirait.

PS Idéalement, j'aimerais également pouvoir interroger les valeurs actuelles du paramètre, par exemple à l'aide d'une commande telle que firefox --get network.proxy.setting


Réponses:


1

Je ne trouve aucun moyen de recharger le prefs.jsfichier (c’est là que Firefox stocke ses paramètres) après l’avoir changé depuis la ligne de commande. C'est dommage car cela aurait été la façon la plus simple de le faire.

Toutefois, pour le paramètre spécifique que vous souhaitez modifier, vous pouvez simplement configurer un proxy.pacfichier qui vérifie si votre adresse IP se trouve dans un sous-réseau particulier et ne configure un proxy que s'il est:

if (isInNet(myIpAddress(), "192.168.1.0", "255.252.0.0")) { 
     proxy = "PROXY 123.456.789.100:12345";
}
else{
     proxy = "DIRECT";
}
return proxy;

De toute évidence, vous devez utiliser l'URL et le port de votre proxy actuel. Vous devrez également le modifier pour qu'il exécute les tests appropriés (plage IP, etc.) pour votre configuration.

Maintenant, ouvrez l'onglet Paramètres proxy, sélectionnez l'option « URL de configuration automatique de proxy » et pointer vers: file:////path/to/proxy.pac. Redémarrez Firefox et vous devriez maintenant avoir votre proxy défini automatiquement en fonction de votre adresse IP.

Voir ici pour plus de détails.


Quand ce fichier pac est-il lu? Peut-on éditer dynamiquement le fichier?
Johan

@Johan Je ne pense pas, il est lu au démarrage de Firefox. Cependant, il sera exécuté chaque fois que vous tenterez de vous connecter à un serveur. Par conséquent, si votre adresse IP a changé, le proxy sera différent. C'est l'idée quand même. Le fichier est simplement une fonction javascript exécutée par firefox avant la connexion à une page Web. Donc, vous n'avez pas besoin de modifier le fichier, il vous suffit de le configurer comme je vous l'ai montré pour qu'il renvoie un proxy différent en fonction de votre IP.
Terdon

J'ai trouvé des indices sur le Web suggérant que le fait de changer prefs.js et de redémarrer Firefox entraînerait la perte des modifications, car Firefox pourrait vider les paramètres modifiés en préfs.js.
Johan

@Johan, je ne vous recommande pas de toucher prefs.js du tout. C’était la première chose que j’essayais mais cela ne semblait pas fonctionner Le fichier .pac n'a rien à voir avec prefs.js.
Terdon

Je cherche toujours un moyen de modifier la configuration du proxy (peut-être de le pointer vers un nouveau fichier PAC) pendant que Firefox est en cours d'exécution, via un script ou une commande externe similaire. Je pense que votre solution résoudrait 90% des problèmes similaires, ainsi que la mienne, mais elle ne répond pas à ma question. Je connaissais l'existence de fichiers PAC, mais je les ai rejetés car je ne pense pas qu'ils puissent être contrôlés de manière dynamique, sauf via l'interface graphique.
Johan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.