Cuando comienzoInicio y detención de Firefox desde C#
/Applications/Firefox.app/Contents/MacOS/firefox-bin
en MacOSX usando Process.Start() usando Mono, el id del proceso que se devuelve no coincide con el proceso por el que Firefox termina corriendo.
Parece que Firefox rápidamente decide comenzar otro proceso y matar el actual.
Esto hace que sea difícil detener Firefox y detectar si aún se está ejecutando. Intenté iniciar Firefox usando la bandera -no-remote, pero no sirvió para nada.
¿Hay alguna manera de iniciar Firefox de forma tal que no haga este baile "Voy a hacer un nuevo proceso para ti" rápidamente?
La situación se puede detectar de alguna manera asegurándose de que Firefox sigue funcionando durante al menos 3 segundos después de su inicio, y cuando no lo hace, busca otros procesos de Firefox. Sin embargo, esta técnica es inestable en el mejor de los casos, ya que en días lentos puede demorar un poco más de 3 segundos y luego fallan todas las pruebas que dependen de este comportamiento.
Resulta que este comportamiento solo ocurre cuando se solicita a Firefox que inicie un perfil específico usando -P MyProfile. (Lo que tengo que hacer, ya que necesito iniciar Firefox con configuraciones específicas de proxyserver). Si inicio Firefox "normalmente", se mantiene en su proceso.
Tenga en cuenta que si ya se está ejecutando una instancia, probablemente verá el mismo comportamiento. Al parecer, Firefox no le gusta demasiado los procesos múltiples, por lo que decide incluir todas las ventanas en un único proceso, lo que hace que los accidentes sean mucho más divertidos :) – Joey
En el peor de los casos, use otro navegador;) –