Comprender en profundidad el perfil por característica de instalación

En tiempo de ejecución, Firefox usa un directorio de configuración o perfil para guardar todas las configuraciones específicas del usuario, como marcadores, historial y extensiones. Durante el inicio, Firefox elige ese directorio en función de algunos criterios, incluidos argumentos de línea de comandos, variables de entorno y un archivo que enumera perfiles conocidos y predeterminados.

Firefox 67 tenía el objetivo de permitir a los usuarios usar diferentes instalaciones de Firefox simultáneamente, sin necesidad de configurar argumentos de línea de comandos, y detener el comportamiento de usar perfiles con versiones anteriores de Firefox de lo que han visto ya que este comportamiento no es compatible y se sabe que causa problemas que son difíciles de diagnosticar y solucionar y Para ello se realizaron cambios en la selección del perfil.

Este artículo describe en detalle cómo solía funcionar la selección de perfiles, cómo funciona ahora en Firefox 67 y cómo migramos usuarios de versiones anteriores.

_Descripción__

Comportamiento anterior

Al iniciar Firefox cargaría una lista de perfiles conocidos de un perfil.in archivo ubicado en una ubicación específica en el directorio de inicio del usuario. Incluye algunas configuraciones y una lista de los perfiles conocidos y su ubicación en el disco. Uno de estos se marcaría como el perfil predeterminado. Este valor predeterminado se aplica a cualquier versión o instalación de Firefox que el usuario ejecuta.

Firefox luego comprueba una serie de variables de entorno y argumentos de línea de comandos que pueden anular el perfil predeterminado. Los detalles no están cubiertos aquí ya que ese comportamiento no ha cambiado. Basta con decir que una vez que se realicen estas comprobaciones, Firefox habrá elegido un perfil para ejecutar o no habrá encontrado uno en absoluto.

Si no se encontró ningún perfil y hay perfiles enumerados en los perfiles.ini (esto indicaría un argumento de línea de comando incorrecto o ninguno de los perfiles marcado como predeterminado) luego se muestra un administrador de perfiles para permitir al usuario seleccionar o crear un nuevo perfil para usar como predeterminado.

Si no se encontró ningún perfil y perfiles.ini está vacío, entonces se considera que es una primera ejecución de Firefox y se crea un nuevo perfil predeterminado vacío y se usa sin interacción del usuario.

El usuario puede cambiar el perfil predeterminado en cualquier momento a través del administrador de perfiles, esto cambiará el valor predeterminado para todas las instalaciones y versiones de Firefox.

Edición para desarrolladores de Firefox

Una complicación es Firefox Developer Edition que normalmente usa un perfil predeterminado diferente de otras versiones de Firefox. Esto se logra ignorando el marcador de perfil predeterminado normal en los perfiles.ini y en su lugar usando un perfil llamado "dev-edition-default" como predeterminado. Esta diferencia causó varios errores, por lo que había un deseo de hacer que Developer Edition se comportara igual que otras versiones.

Varias instancias

Un detalle adicional es lo que sucede cuando ya hay una instancia de Firefox en ejecución. Antes de que se inicie la selección de perfil, Firefox intenta encontrar una instancia existente de Firefox en el sistema. Si existe uno, en lugar de iniciar cualquier argumento de línea de comando se envían a la instancia existente y se ejecutan allí.

En Windows, solo se puede ejecutar una instancia de Firefox a la vez a menos que se use el argumento de línea de comandos -no-remote para instancias adicionales. Estos comenzarán independientemente de otra instancia en ejecución, pero también cualquier inicio futuro de Firefox no podrá detectar estas instancias, por lo que se iniciará si no se encuentra una instancia normal. Cuando se ejecutan varias instancias, cada una debe usar un perfil separado. Los bloqueos de perfil se utilizan para hacer cumplir esto.

En linux es similar, pero con algunas complejidades. Si se pasa un argumento de línea de comandos que especifica un perfil, Firefox solo intentará encontrar y entregar a una instancia existente usando ese perfil, si no se encuentra, continuará iniciándose. También se puede pasar un argumento -new-instance que hace que Firefox se inicie independientemente de las instancias existentes.

Nuevo comportamiento

Con versiones de Firefox de 67 en adelante, en lugar de haber un perfil predeterminado para todas las instalaciones de Firefox, cada instalación de Firefox (basada en la ubicación física en el disco después de seguir los enlaces simbólicos) tiene su propio perfil predeterminado.

Durante esta sección, "perfil antiguo" se refiere al perfil que habría sido utilizado como predeterminado por las versiones de Firefox anteriores a 67, "perfil dedicado" se refiere al perfil marcado como predeterminado para una instalación de Firefox.

Al iniciar Firefox todavía carga perfiles.En ella, contiene la misma información que anteriormente. Uno de los perfiles conocidos puede marcarse como el predeterminado anterior. Además perfiles.ini ahora incluye una lista de instalaciones conocidas de Firefox. Cada nueva sección se nombra en función de un hash del directorio de instalación de Firefox. Cada sección de instalación incluye la ubicación en el disco del perfil dedicado para esa instalación, así como un marcador para saber si el perfil está "bloqueado" a esa instalación.

Como anteriormente, Firefox aún verifica los argumentos de la línea de comandos y las variables de entorno que pueden anular la selección de perfil predeterminada. Más allá de eso, si ya hay un valor predeterminado dedicado para esta instalación, entonces se usa como el perfil predeterminado y la puesta en marcha continúa.

Donde el comportamiento diverge es donde no había un valor predeterminado dedicado marcado para esta instalación (esto incluye el caso en que Firefox se inicia como resultado de un reinicio y la ejecución anterior estaba usando el perfil predeterminado anterior, esto generalmente ocurre durante un reinicio automático para aplicar una actualización a una versión 67 o superior).

Si la sección de instalación existe en los perfiles.ini pero no se refirió a ningún perfil existente (desde entonces se ha eliminado), luego se crea y usa un nuevo perfil predeterminado dedicado.

Si no existe ninguna sección de instalación en los perfiles.in entonces esta se considera que es la primera vez que esta instalación se ejecuta como la versión 67 o superior. En este caso, se utiliza una heurística para decidir si se debe crear un nuevo perfil predeterminado dedicado o si se debe marcar el valor predeterminado anterior como el valor predeterminado dedicado para esta instalación:

  1. ¿El perfil predeterminado anterior contiene una compatibilidad?ini y puede ser analizado. De lo contrario, cree un nuevo perfil predeterminado dedicado y continúe el inicio. (Solo las versiones muy antiguas de Firefox no crean este archivo, por lo que falta significa que este es un perfil completamente vacío o es tan antiguo que probablemente no se pueda usar con las versiones modernas de Firefox).
  2. Compatibilidad.ini archivo incluye información sobre la última instalación de Firefox para utilizar el perfil predeterminado de edad. Si el perfil predeterminado anterior fue utilizado por última vez por una instalación diferente de Firefox, cree un nuevo perfil predeterminado dedicado y continúe el inicio.
  3. Compruebe si alguna otra instalación conocida de Firefox tiene el valor predeterminado anterior marcado como su valor predeterminado dedicado y el perfil está marcado como "bloqueado" a la instalación. Si es así, cree un nuevo perfil predeterminado dedicado y continúe el inicio.
  4. Marque el perfil predeterminado anterior como el perfil predeterminado dedicado para esta instalación, elimínelo como el perfil predeterminado dedicado para otras instalaciones de Firefox (hecho de tal manera que la próxima puesta en marcha simplemente crearán un nuevo perfil en lugar de intentar usar el antiguo predeterminado). Continuar el inicio. El perfil todavía está marcado como el predeterminado anterior en este punto, por lo que las versiones anteriores de Firefox continuarán utilizándose como predeterminado hasta que se actualicen.
  5. * Más tarde durante el inicio (esto no se puede hacer durante el inicio temprano por varias razones) verifique si esta instalación de Firefox está marcada como el navegador predeterminado del sistema operativo. Si es así, marque el perfil predeterminado dedicado como "bloqueado" para esta instalación.

El usuario todavía puede cambiar el perfil predeterminado dedicado para esta instalación de Firefox usando el administrador de perfiles, el cambio solo se aplicará a esta instalación de Firefox. Hacer una selección de esta manera marcará el perfil elegido como "bloqueado" a esta instalación.

Edición para desarrolladores de Firefox

Con Firefox Developer Edition 67 selección de perfil por defecto se ha cambiado para ser más estándar. Developer Edition ahora usa el mismo sistema para seleccionar el valor predeterminado dedicado que otras versiones de Firefox 67 y ya no se basa en nombres de perfil específicos. El único cambio en la descripción anterior es que "perfil antiguo" se refiere al perfil llamado "dev-edition-default" en lugar del perfil marcado como predeterminado en los perfiles.iní.

Varias instancias

La ejecución de varias instancias de Firefox también cambió con Firefox 67. Ahora Windows y Linux tienen comportamientos idénticos:

Durante el inicio, Firefox se ejecuta a través de su selección de perfil completo para decidir qué perfil se desea en función de los argumentos de la línea de comandos, las variables de entorno y la información del perfil predeterminado. Firefox luego busca cualquier instancia de Firefox existente que esté usando el perfil deseado, si existe, en lugar de iniciar cualquier argumento de línea de comando se pasan a la instancia encontrada.

Esto tiene la ventaja de que puede ejecutar diferentes instalaciones de Firefox lado a lado sin argumentos de línea de comandos adicionales. Cada uno tendrá su propio perfil predeterminado, comenzando uno usará su perfil predeterminado, comenzando otro usará el otro perfil predeterminado. Si tiene Firefox beta en ejecución y Firefox Release es el navegador predeterminado del sistema operativo, abrir un enlace en otra aplicación lo abrirá en Firefox Release donde anteriormente lo habría abierto en lo que Firefox estuviera abierto en ese momento.

Con esta característica, los indicadores -no-remote y -new-instance ya no son necesarios para ejecutar diferentes instancias de Firefox al mismo tiempo, pero no causarán ningún error si se usan.

Bloqueo de rebajas

Otro cambio en Firefox 67 es la detección de degradación de perfil. Al iniciar Firefox mira el perfil para ver si fue utilizado por última vez por una versión más reciente de Firefox que el usuario está tratando de iniciar. Se sabe que esto causa muchos problemas, a veces obvios, a veces menos. Firefox ahora evitará que el usuario haga esto, ofreciéndoles la opción de crear un nuevo perfil para usar en su lugar.

Deshabilitar los cambios

Los cambios en la selección de perfil se pueden revertir estableciendo la variable de entorno MOZ_LEGACY_PROFILES. Sin embargo, esto no revertirá los cambios a la ejecución de varias instancias. El bloqueo de degradación se puede omitir estableciendo la variable de entorno MOZ_ALLOW_DOWNGRADE o pasando el argumento de línea de comandos --allow-downgrade cuando se ejecuta Firefox.

{nota}Las primeras versiones alfa y beta de Firefox 67 almacenaban esta información en un archivo diferente llamado instalaciones.iní. Este archivo todavía existe como una copia de seguridad de los datos ahora en los perfiles.in y se vuelve a importar en perfiles.ini si una versión anterior de Firefox lo elimina. Modificación de los perfiles.ini file no es compatible y altamente desaconsejado, cualquier modificación de la información de instalación en los perfiles.ini sin también modificar las instalaciones.ini se puede perder si se ejecuta una versión de Firefox antes de 67.{/nota}

Deshabilitar los cambios

¿Te resultó útil este artículo?

Espera por favor...

These fine people helped write this article:

Illustration of hands

Voluntario

Grow and share your expertise with others. Answer questions and improve our knowledge base.

Learn More