Chrome y Firefox pronto llegarán a la versión principal 100

Cambios en las cadenas de usuario-agente, las estrategias que Chrome y Firefox están adoptando para mitigar el impacto y cómo puedes ayudar

Chrome y Firefox alcanzarán la versión 100 en un par de meses. Esto puede provocar fallas en los sitios que dependen de identificar la versión del navegador para realizar la lógica empresarial. En esta entrada, se explica el cronograma de los eventos, las estrategias que Chrome y Firefox están adoptando para mitigar el impacto y cómo puedes ayudar.

String de usuario-agente

El usuario-agente (UA) es una cadena que los navegadores envían en los encabezados HTTP, para que los servidores puedan identificar el navegador. También se puede acceder a la cadena a través de JavaScript con navigator.userAgent. Por lo general, tiene el siguiente formato:

<browser_name>/<major_version>.<minor_version>

Por ejemplo, las versiones más recientes de los navegadores en el momento de publicar esta publicación son las siguientes:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

Versión principal 100: número de versión de tres dígitos

La versión principal 100 es un gran hito tanto para Chrome como Firefox. También tiene el potencial de causar fallas en los sitios web a medida que pasamos de un número de versión de dos dígitos a uno de tres dígitos. Los desarrolladores web usan todo tipo de técnicas para analizar estas cadenas, desde código personalizado hasta el uso de bibliotecas de análisis de usuario-agente, que luego pueden usarse para determinar la lógica de procesamiento correspondiente. El usuario-agente y cualquier otro mecanismo de informe de versiones pronto informarán un número de versión de tres dígitos.

Cronogramas de la versión 100

Los navegadores de la versión 100 se lanzarán primero en versiones experimentales (Chrome Canary, Firefox Nightly), luego en las versiones beta y, por último, en el canal estable.

Navegador Cronograma
Chrome (programa de lanzamiento) 29 de marzo de 2022
Firefox (programa de lanzamiento) 3 de mayo de 2022

¿Por qué puede ser problemático un número de versión de tres dígitos?

Cuando los navegadores alcanzaron la versión 10 por primera vez hace poco más de 12 años, se descubrieron muchos problemas con las bibliotecas de análisis del usuario-agente, ya que el número de versión principal pasó de un dígito a dos.

Sin una sola especificación a seguir, los distintos navegadores tienen diferentes formatos para la string de usuario-agente y el análisis de usuario-agente específico del sitio. Es posible que algunas bibliotecas de análisis tengan suposiciones hard-coded o errores que no tengan en cuenta los números de versión principal de tres dígitos. Muchas bibliotecas mejoraron la lógica de análisis cuando los navegadores migraban a números de versión de dos dígitos, por lo que se espera que alcanzar el objetivo de tres dígitos cause menos problemas. Mike Taylor, un ingeniero del equipo de Chrome, realizó una encuesta sobre bibliotecas comunes de análisis de UA que no detectó ningún problema. La ejecución de experimentos de Chrome en el campo detectó algunos problemas en los que se está trabajando.

¿Qué hacen los navegadores al respecto?

Tanto Firefox como Chrome ejecutaron experimentos en los que las versiones actuales del navegador informaron estar en la versión principal 100 para detectar una posible falla del sitio web. Esto generó algunos problemas informados, algunos de los cuales ya se corrigieron. Estos experimentos seguirán ejecutándose hasta el lanzamiento de la versión 100.

También existen estrategias de mitigación de copias de seguridad, en caso de que el lanzamiento de la versión 100 a canales estables cause más daño a los sitios web de lo previsto.

Mitigación de Chrome

En Chrome, el plan de creación de copias de seguridad consiste en usar una marca para inmovilizar la versión principal en 99 e informar el número real de la versión principal en la parte de la versión secundaria de la cadena de usuario-agente (el código ya se lanzó).

La versión de Chrome que se informa en la string usuario-agente sigue el patrón <major_version>.<minor_version>.<build_number>.<patch_number>.

Si se emplea el plan de copia de seguridad, la string de usuario-agente se vería de la siguiente manera:

99.101.4988.0

Chrome también está ejecutando experimentos para garantizar que informar un valor de tres dígitos en la parte de la versión secundaria de la cadena no produzca fallas, ya que la versión secundaria en la cadena de usuario-agente de Chrome informó 0 por un tiempo mucho. El equipo de Chrome decidirá si utiliza la opción de copia de seguridad en función de la cantidad y la gravedad de los problemas informados.

Mitigación de Firefox

En Firefox, la estrategia dependerá de la importancia de la falla, que cuenta con un mecanismo de intervención del sitio. El equipo de Mozilla Webcompat puede usar este mecanismo para corregir los sitios web que no funcionan correctamente en Firefox. Si escribes about:compat en la barra de URL de Firefox, puedes ver qué se está corrigiendo actualmente. Si un sitio no funciona y la versión principal es 100 en un dominio específico, es posible corregirla enviando la versión 99.

Si la falla es generalizada, es posible inmovilizar el número de la versión principal. Existen diferentes estrategias posibles, cada una de ellas con sus ventajas y desventajas. Mozilla puede enviar el número de versión real como un número de versión secundario, inmovilizar la cadena por completo como está o enviar el número de versión real a través de otros parámetros.

Cada estrategia que agrega complejidad a la string de usuario-agente tiene un gran impacto en el ecosistema. Trabajemos juntos para evitar otro comportamiento peculiar.

¿Cómo puedes ayudar?

En Chrome y Firefox Nightly, puedes configurar el navegador para que informe la versión 100 en este momento y cualquier problema que encuentres.

Configura Chrome para informar que la versión principal es 100

  1. Ve a chrome://flags/#force-major-version-to-100.
  2. Establece la opción en Enabled.

Configura Firefox Nightly para que informe la versión principal como 100

  1. Abre el menú de Configuración cada noche de Firefox.
  2. Busca "Firefox 100" y, a continuación, marca la opción "Cadena de usuario-agente de Firefox 100".

Informes de pruebas y presentación

  • Si eres encargado de mantener sitios web, prueba tu sitio con Chrome y Firefox 100. Revisa el código de análisis del usuario-agente y las bibliotecas, y asegúrate de que puedan administrar números de versión de tres dígitos. Compilamos algunos de los patrones que se están produciendo actualmente.
  • Si desarrollas una biblioteca de análisis de usuario-agente, agrega pruebas para analizar versiones superiores o iguales a 100. Nuestras primeras pruebas muestran que las versiones recientes de las bibliotecas pueden manejarlo correctamente. Sin embargo, la Web tiene un legado largo, por lo que, si tienes versiones antiguas de bibliotecas de análisis, es hora de verificar si hay problemas y, luego, actualizarlas.
  • Si estás navegando en la Web y detectas algún problema con la versión principal 100, envía un informe en webcompat.com.