¿Qué es un experimento de Chrome Finch?

Fecha de publicación: 3 de abril de 2025

Cuando llega el momento de lanzar una nueva función en Chrome, hay muchos controles y contrapesos para garantizar que funcione, cumpla con las políticas y sea confiable. Uno de esos equilibrios son los experimentos de Finch. No dejes que la palabra "experimento" de su nombre te engañe y te haga pensar que no es seguro. Es todo lo contrario. Los lanzamientos de Finch nos ayudan a agregar funciones que podrían causar problemas de compatibilidad de forma segura, ya que nos permiten inhabilitar una función rápidamente si encontramos problemas imprevistos. En este artículo, se explica cómo y por qué usamos Finch para algunas versiones de funciones en Chrome.

Por lo general, habilitar una función en Chrome significa simplemente activar o desactivar un valor booleano dentro de Chrome. Cuando se "publica" una función nueva, simplemente significa que este valor booleano cambió su estado predeterminado a "activado" para todos los usuarios. Hay varias formas de hacerlo:

  • Habilitar la función "en el código": Esto significa que el ejecutable de Chrome tiene un parámetro de configuración habilitado de forma predeterminada.
  • Habilita la función "por prueba de origen": El sistema de pruebas de origen es una forma para que un sitio en particular inscriba a todos los usuarios de Chrome en un experimento, lo que habilita una función en particular solo en ese sitio.
  • Habilita la función "usando Finch": Chrome recupera un archivo de configuración de un servidor de forma periódica, y este archivo puede contener instrucciones para habilitar o inhabilitar una función.
  • Un "interruptor de emergencia de Finch": es lo opuesto a habilitar "usar Finch". En este caso, la función está habilitada "en el código", pero luego se inhabilita con el sistema Finch, por lo general, debido a problemas detectados después del lanzamiento.

Casos de uso de Finch

El tema de esta entrada de blog es Finch, por lo que no hablaremos mucho más sobre la habilitación de "en el código" o "prueba de origen". Sin embargo, Finch tiene varios casos de uso interesantes.

Prueba en un grupo pequeño de usuarios (prueba A/B)

A menudo, Finch se usa para realizar "pruebas A/B" de una función o optimización. En este caso, se habilita una función para un pequeño porcentaje de usuarios, de modo que se puedan recopilar datos sobre la diferencia en el rendimiento, el comportamiento o el uso cuando la función está habilitada o inhabilitada.

Un ejemplo de prueba A/B es cuando lanzamos las decodificaciones de imágenes especulativas. Esta es una mejora de rendimiento que no debería notarse para los desarrolladores ni los usuarios, salvo que haga que Chrome cargue las páginas más rápido. Sin embargo, para asegurarnos de que no ocurriera nada inesperado y poder medir con precisión el impacto en el rendimiento, usamos Finch para realizar una prueba A/B.

Inhabilita una función problemática

Para garantizar la seguridad del producto y la experiencia del usuario, Chrome puede usar el sistema Finch para inhabilitar de forma remota las funciones problemáticas que se habilitaron "en el código". Por ejemplo, si una función se habilitó de forma predeterminada, pero los problemas solo surgieron después de que Chrome alcanzó el estado estable, necesitamos una forma de inhabilitar rápidamente la función para que los usuarios y las empresas vuelvan a un estado seguro. Esto puede ser necesario cuando hay errores no descubiertos en la función o cuando una función daña los sitios existentes por motivos imprevistos.

Habilita funciones peligrosas de forma más segura

En el caso de la mayoría de las funciones que lanza Chrome, el riesgo es bajo, ya que podemos probar y verificar que el código nuevo funcione en todos los sitios.

Sin embargo, a veces, el lanzamiento de funciones puede ser bastante riesgoso debido a problemas de compatibilidad desconocidos o a otras interacciones complicadas. En este caso, el sistema Finch se puede usar para habilitar la función, en lugar de simplemente tenerla en reserva como un interruptor de apagado.

Por ejemplo, la "relajación" del analizador de HTML fue un cambio relacionado con la nueva función de selección personalizable que permitía colocar más contenido que antes dentro de un elemento <select>. Dado que es posible que este cambio genere fallas en los sitios existentes, tuvimos que implementarlo con cuidado.

Habilitar funciones con Finch puede ser más seguro que usar Finch para quitarlas, ya que Finch no llega al 100% de los usuarios por varios motivos. Por ejemplo, algunos usuarios empresariales tienen una política que prohíbe por completo la configuración de Finch. Esos usuarios seguirán en riesgo en caso de que se habilite una función en el código y, luego, se cambie el interruptor de apagado con Finch, ya que esos usuarios no recibirán la configuración de Finch y seguirán teniendo la función habilitada. En cambio, si habilitas la función con Finch, podemos garantizar que se pueda inhabilitar para todos los usuarios en caso de emergencia.

¿Cómo comprobar si estás en un experimento de Finch?

Esto es difícil para los usuarios hacerlo directamente. La forma recomendada es comunicarse con un ingeniero de Chrome (por lo general, en el contexto de un error de Chromium) y enviarle tu "lista de variaciones". Esta es una lista de versiones con codificación especial de todos los parámetros de configuración de Finch para un navegador determinado. Se puede recuperar fácilmente:

  1. Navega a chrome://version.
  2. Copia toda la lista de texto (sí, puede ser bastante larga) que aparece junto a "Variaciones activas".
  3. Pégalo en un archivo de texto (por ejemplo, variations.txt) y adjúntalo a un error.

Con esta lista de variaciones, los ingenieros de Chrome pueden decodificarla y ver qué funciones están habilitadas o inhabilitadas en tu navegador.

¿Qué sucede cuando el experimento de Finch alcanza el 100% y está listo para comenzar a usarlo?

Una vez que nos aseguramos de que nuestro experimento es "exitoso" y de que la función en cuestión no representa riesgos para los desarrolladores o los usuarios, siempre habilitamos la función "en el código". En este punto, es seguro finalizar la configuración de Finch para que deje de tener efecto en los navegadores después de la versión en la que se habilitó la función en el código.