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

Los cambios en la cadena de usuario-agente, las estrategias que Chrome y Firefox están adoptando para mitigar el impacto y cómo puedes ayudar.

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

Cadena de usuario-agente

El usuario-agente (UA) es una cadena que los navegadores envían en 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 de actualización más recientes de los navegadores en el momento de la publicación de 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 logro para Chrome y Firefox. También puede 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. Los desarrolladores web usan todo tipo de técnicas para analítico estas cadenas, desde código personalizado hasta el uso de bibliotecas de análisis de User-Agent, que luego se pueden usar para determinar la lógica de procesamiento correspondiente. El User-Agent y cualquier otro mecanismo de informes de versión pronto informará 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 y Firefox Nightly), luego en versiones beta y, por último, en el canal estable.

Navegador Cronograma
Chrome (programación de lanzamientos) 29 de marzo de 2022
Firefox (programación de lanzamientos) 3 de mayo de 2022

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

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

Sin una sola especificación que seguir, los diferentes navegadores tienen diferentes formatos para la cadena de usuario-agente y el análisis de usuario-agente específico del sitio. Es posible que algunas bibliotecas de análisis tengan suposiciones o errores hard-coded 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 pasaron a números de versión de dos dígitos, por lo que se espera que alcanzar el hito de tres dígitos cause menos problemas. Mike Taylor, ingeniero del equipo de Chrome, realizó una encuesta de bibliotecas comunes de análisis de UA que no reveló ningún problema. La ejecución de experimentos de Chrome en el campo reveló algunos problemas, en los que se está trabajando.

¿Qué están haciendo los navegadores al respecto?

Tanto Firefox como Chrome ejecutaron experimentos en los que las versiones actuales del navegador informan que están en la versión principal 100 para detectar posibles fallas en los sitios web. Esto generó algunos problemas informados, algunos de los cuales ya se solucionaron. Estos experimentos se seguirán ejecutando hasta el lanzamiento de la versión 100.

También se implementaron estrategias de mitigación de respaldo en caso de que el lanzamiento de la versión 100 en los canales estables cause más daños a los sitios web de lo previsto.

Mitigación de Chrome

En Chrome, el plan de respaldo es usar una marca para bloquear la versión principal en 99 y 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, como se informa en la cadena de usuario-agente, sigue el patrón <major_version>.<minor_version>.<build_number>.<patch_number>.

Si se emplea el plan de copia de seguridad, la cadena User-Agent se verá 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 menor de la cadena no genere errores, ya que la versión menor en la cadena de usuario-agente de Chrome informó 0 durante mucho tiempo. El equipo de Chrome decidirá si recurrir a la opción de copia de seguridad según la cantidad y gravedad de los problemas informados.

Mitigación de Firefox

En Firefox, la estrategia dependerá de la importancia de la ruptura. Firefox tiene un mecanismo de intervenciones en el sitio. El equipo de compatibilidad web de Mozilla puede aplicar correcciones en caliente a los sitios web dañados en Firefox con este mecanismo. Si escribes about:compat en la barra de URL de Firefox, puedes ver lo que se está corrigiendo en ese momento. Si un sitio falla con la versión principal 100 en un dominio específico, es posible corregirlo enviando la versión 99.

Si la falla es generalizada, es posible inmovilizar el número de versión principal. Luego, existen diferentes estrategias posibles, cada una con sus ventajas y desventajas. Mozilla puede enviar el número de versión real como un número de versión menor, inmovilizar la cadena por completo tal 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 cadena del usuario-agente tiene un gran impacto en el ecosistema. Trabajemos juntos para evitar otro comportamiento peculiar.

¿Qué puedes hacer para ayudar?

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

Configura Chrome para que informe la versión principal como 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ú Configuración de Firefox Nightly.
  2. Busca "Firefox 100" y, luego, marca la opción "Firefox 100 User-Agent String".

Prueba y genera informes

  • Si eres el encargado de mantener un sitio web, pruébalo con Chrome y Firefox 100. Revisa el código y las bibliotecas de análisis de usuario-agente, y asegúrate de que puedan controlar números de versión de tres dígitos. Recopilamos algunos de los patrones que se están rompiendo en la actualidad.
  • Si desarrollas una biblioteca de análisis de usuario-agente, agrega pruebas para analizar versiones mayores o iguales a 100. Nuestras primeras pruebas muestran que las versiones recientes de las bibliotecas pueden controlarlo correctamente. Sin embargo, la Web tiene un largo legado, así que si tienes versiones antiguas de bibliotecas de análisis, es hora de verificar si hay problemas y, finalmente, actualizarlas.
  • Si estás navegando por la Web y notas algún problema con la versión principal 100, envía un informe a webcompat.com.