¿Cómo puedo cambiar la configuración de proxy de Firefox desde un programa externo?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

He visto algunos programas (por ejemplo, Charles Web Developer Proxy) que pueden modificar la configuración de proxy de Firefox. La secuencia es:

  1. Firefox se está ejecutando, con la configuración de proxy del usuario.
  2. El usuario inicia la aplicación externa de terceros, que
  3. modifica la configuración de proxy de Firefox y luego
  4. el usuario sale del programa de terceros y,
  5. Firefox reanuda la ejecución con su configuración de proxy original.

Suponiendo que la aplicación externa está recordando la configuración del proxy anterior y restaurándola al salir, ¿cómo puedo leer y escribir la configuración del proxy de Firefox? He intentado buscar en Google a través de la documentación de Firefox, pero aún no ha habido suerte.

Opciones consideradas:

  • Escriba un nuevo archivo de configuración de preferencias de usuario e inicie una nueva instancia del navegador. Funcionaría, pero no del todo bien: Charles, por ejemplo, puede modificar la configuración de un navegador que ya está en ejecución y restaurarlos sin reiniciar.
  • Escribir un plug-in. Podría escribir un complemento de Firefox que ofreciera algún tipo de IPC al exterior y luego manejara la configuración de preferencias de Firefox. De hecho, creo que esta podría ser la única manera. Deshabilitar el complemento de Firefox de Charles parece deshabilitar su capacidad para modificar las preferencias sobre la marcha.

Recursos posibles

¿Fue útil?

Solución

Por lo que pude ver en la documentación, Charles tiene una extensión de Firefox que instala / utiliza. Eso puede ser cómo puede recargar la información del proxy sobre la marcha.

La información de proxy se almacena en las prefs.js de su perfil, pero no se puede volver a cargar sobre la marcha. Firefox lo lee en el inicio y lo escribe cuando se apaga, y no se carga desde allí. Además, si Firefox se está ejecutando cuando edite prefs.js, sus cambios se sobrescribirán.

Pensé que podrías hacer algo con un archivo PAC, pero después de investigar un poco, encontré que tampoco parece que se vuelva a cargar sobre la marcha. Tendría que reiniciar para volver a cargar cualquier modificación en la configuración.

Otros consejos

Es posible que desee ver cómo Fiddler hace esto (www.fiddler2.com). La carpeta C: \ archivos de programa \ fiddler2 \ fiddlerhook \ tiene una extensión de Firefox que muestra cómo se puede hacer esto.

Todas las configuraciones de proxy para Firefox, en mi máquina, se almacenan en C: \ DOCUME ~ 1 \ BRUCEX ~ 1 \ APPLIC ~ 1 \ Mozilla \ Firefox \ Profiles \ licga1pg.default \ prefs.js. El encabezado en ese archivo dice

# 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
 */

El enlace a customizing.html es aquí . Así que, en teoría, podría modificar algunos o todos estos

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);

aunque existe el problema, entonces, conseguir que Firefox vuelva a leerlos.

Si revisa algunos de los enlaces en las respuestas a mi pregunta anterior puede encontrar un código que puede usar para modificar la configuración del proxy según sea necesario.

Hay una conexión ActiveX a Firefox a través de Control ActiveX para Hosting Netscape Plug-ins en IE pero tengo mis dudas sobre si eso va a ser de alguna ayuda. Aún así, vale la pena echarle un vistazo.

Incluso me enfrenté al problema de las configuraciones de conexión realizadas para usar el proxy manual que no se reflejaba cuando estaba lanzando el navegador Firefox desde la aplicación de terceros (estoy trabajando en Selenio)

Me cansé de agregar el archivo users.js en C: \ Archivos de programa \ Mozilla Firefox \ defaults \ profile

con los cambios como se sugirió anteriormente (agregando las declaraciones de user_pref), pero de alguna manera todavía mi navegador Firefox no estaba captando los cambios mencionados. Lo mismo incluso en mi prefs.js en la misma ubicación (¡En realidad mi prefs.js está vacío!)

Pero tengo otra forma de hacerlo ... en C: \ Archivos de programa \ Mozilla Firefox \ greprefs \ all.js, haga los mismos cambios sugeridos anteriormente pref (" network.proxy.type " ;, 0); a 1 pref (" network.proxy.http " ;, " "); a localhost pref (" network.proxy.http_port " ;, 0); a 4444

y las cosas empezaron a funcionar .. Pero no estoy seguro de si esta es la forma correcta de hacerlo, ya que estamos cambiando un archivo en el directorio de instalación. Por cierto, ¿es un error con Firefox?

Aprecia tus comentarios

Intenté descargar selenium rc 1.0.3 y usé * chrome /usr/lib/firefox-3.0.10/firefox-bin seguido de la URL de AUT.It funcionó. Supuestamente, han eliminado el * modo personalizado de ejecutándose desde 1.0.3 (supongo), porque al descomprimir el archivo selenium-server.jar, no pude encontrar ningún archivo custom.class a diferencia de versiones anteriores en las que había un archivo custom.class en el servidor selenium archivo .jar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top