¿Qué sucederá con las extensiones de Chrome?

Hasta ahora, 2023 ha sido un año ajetreado en el mundo de las extensiones de Chrome. Tus valiosos comentarios nos permitieron mejorar la plataforma de extensiones y nuestra documentación. También seguimos colaborando con otros proveedores de navegadores en el grupo comunitario de WebExtensions para que las APIs de extensiones funcionen de manera más coherente en todos los navegadores.

En esta publicación, te compartiremos algunos cambios en los que trabajó el equipo de extensiones de Chrome durante la primera mitad de este año y las próximas funciones que se lanzarán más adelante este trimestre. Comencemos.

Nuevas APIs y funciones de extensión

En esta sección, quiero destacar algunos lanzamientos importantes de APIs, revisar brevemente otras mejoras de las APIs y compartir las próximas versiones de las APIs.

Destacadas

Documentos fuera de pantalla

La API de Offscreen se introdujo en Chrome 109. Permite que las extensiones de Manifest V3 controlen casos de uso que necesitan interacción con el DOM o la ventana, lo que no se puede realizar en el service worker de la extensión. Además, Chrome 114 introdujo dos motivos adicionales fuera de la pantalla: 'WORKERS' para los casos en que tu documento necesita crear un trabajador y 'LOCAL_STORAGE' para ayudar a migrar datos de window.localStorage a la API de chrome.storage.

A partir de Chrome 115, puedes proporcionar varios motivos cuando creas un documento fuera de la pantalla. Esto te permite realizar dos tareas relacionadas en el mismo documento.

Nueva API de Side Panel 🎉

En el pasado, la única forma de crear barras laterales en las extensiones era inyectar un elemento nuevo con secuencias de comandos de contenido en cada página. En Chrome 114, se lanzó la API de Side Panel. Ahora puedes desarrollar una experiencia de barra lateral complementaria para los usuarios de una manera mucho más sencilla. Obtén más información sobre cómo la API del panel lateral te permite diseñar una experiencia del usuario superior.

Una extensión de diccionario que muestra la definición de una palabra seleccionada
Extensión de diccionario del panel lateral. Consulta el código en el repositorio chrome-extensions-samples.

Service Workers más sólidos

Todos los eventos de extensión ahora reinician el temporizador de inactividad del trabajador del servicio de extensión. En Chrome 110, se quitó el tiempo de vida máximo de cinco minutos para los service workers de extensiones. Además, los mensajes a aplicaciones nativas y los mensajes dentro de la extensión reinician el temporizador inactivo. Obtén más información en el artículo El ciclo de vida del trabajador de servicio de extensión.

Más lanzamientos de APIs

  • API de Action: A partir de Chrome 110, puedes personalizar el texto de la insignia con setBadgeTextColor() y getBadgeTextColor(). Además, isEnabled() te permite verificar si la acción está habilitada para la pestaña actual.
  • API de Commands: Se corrigió el error por el que los atajos de la extensión, declarados en el manifiesto en "commands._execute_action", no persistían durante la conversión a MV3 en Chrome 111.
  • API de Downloads: La IU de descargas predeterminada en Chrome se movió de un estante en la parte inferior al lado derecho de la barra de direcciones. Para inhabilitar este comportamiento, puedes usar downloads.setUiOptions(), que reemplaza a setShelfEnabled().
  • API de History: chrome.history.getVisits() y chrome.history.search() también muestran datos de otros dispositivos que se sincronizaron con la base de datos de historial local. Esto puede generar más entradas de historial y un mayor recuento de visitas. Se agregó isLocal a VisitItem en Chrome 115 (se espera que esté disponible en la versión estable a fines de este mes) para poder filtrar solo por visitas locales.
  • API de Identity: La ventana de autenticación ahora aparece como una ventana emergente, en lugar de ocupar una ventana de aplicación completa. Para otorgar más control durante el proceso de redireccionamientos de JavaScript, agregamos dos opciones nuevas: abortOnLoadForNonInteractive y timeoutMsForNonInteractive.
  • API de Storage: En Chrome 112, el tamaño de almacenamiento de chrome.session aumentó a 10 MB. Luego, se cambió el tamaño de almacenamiento de chrome.local para que coincida con el de Chrome 114.

Próximamente…

Las próximas versiones de Chrome incluirán muchas funciones para facilitar la migración de las extensiones a Manifest V3. Para obtener una lista de los próximos cambios relacionados con la migración a MV3, consulta nuestra página de problemas conocidos. Además, planeamos agregar las siguientes funciones:

  • API de DeclarativeNetRequest: El valor predeterminado de la propiedad isUrlFilterCaseSensitive cambiará a false. Consulta el subproceso WECG.
  • La API de File Handling permitirá que las extensiones de ChromeOS abran archivos con tipos MIME y extensiones de archivo especificados. Actualmente, esta función está detrás de una marca.
  • API de Runtime: Lanzaremos runtime.getContexts() para reemplazar a extension.getViews(), que dejó de estar disponible. Esto permitirá que las extensiones determinen si está abierta una página de la extensión, como el panel lateral o el documento fuera de la pantalla. Consulta la propuesta de WECG.
  • Trabajadores del servicio: Agregamos elementos de mantenimiento activo a las APIs de Chrome que muestran un mensaje para el usuario: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() y management.uninstall().
  • API del panel lateral: Lanzaremos sidepanel.open(), que abrirá el panel lateral de la extensión de forma programática en respuesta a un gesto del usuario, como un clic en el menú contextual.
  • API de TabCapture: Agregamos la capacidad de llamar a getMediaStreamId() desde el service worker de la extensión y obtener un MediaStream de un ID de flujo en un documento fuera de la pantalla. Consulta Grabación de audio y captura de pantalla para ver ejemplos.

No te pierdas los anuncios en la página Novedades de las extensiones en cuanto estén disponibles en Chrome Beta.

Actualizaciones de la documentación y más orientación sobre Manifest V3

También trabajamos arduamente para mejorar la experiencia de aprendizaje de los desarrolladores. Muchas gracias a todos los que se tomaron el tiempo de hacer preguntas en chromium-group y de informar problemas de documentación en developer.chrome.com.

Destacadas

  • La nueva sección Migración a MV3 proporciona formas prácticas de convertir extensiones de Manifest V2 a Manifest V3.
  • La guía Extension service workers proporciona información detallada sobre los temas relacionados con los trabajadores de servicio de extensión. Esto incluye cómo se registran y actualizan, cómo se ve el ciclo de vida, cómo funcionan las importaciones y mucho más.
  • En el instructivo Cómo controlar eventos con service workers, se enseñan los conceptos básicos de los service workers de extensiones. Compila una extensión del cuadro multifunción que te brinda acceso rápido a las páginas de referencia de la API de la extensión.

Más novedades

Próximamente…

  • Cómo migrar el código alojado de forma remota a Manifest V3
  • Cómo ejecutar pruebas automatizadas para extensiones de Chrome
  • Se mejoró la guía de solicitudes de red declarativas.
  • Se realizaron mejoras en la explicación de la secuencia de comandos de contenido.

💡 ¿Sabías que…?

Antes de terminar, queremos compartir algunas herramientas y estadísticas útiles:

  • Chrome comenzó a admitir WebHID. Puedes probar la API a partir de Chrome 115 (pero ten en cuenta que aún está en desarrollo).
  • Puppeteer ahora admite pruebas en modo sin interfaz gráfica con --headless=new . Obtén más información en la entrada de blog sobre la actualización del modo sin interfaz gráfica de Chrome.
  • Con la herramienta de prueba de actualización de extensiones, puedes verificar qué advertencias se activan cuando cambian los permisos en el manifiesto. De esta manera, puedes experimentar el proceso de actualización como lo haría un usuario. Esto es importante porque algunos permisos podrían inhabilitar la extensión hasta que el usuario vuelva a otorgar acceso.

Conectémonos. 🙌

Este año, el equipo de extensiones se alegró de conocer a los desarrolladores de extensiones en persona durante los eventos de Google I/O Connect. Estamos trabajando para crear nuevos espacios para conectarnos contigo, como el lanzamiento de grupos focales y eventos de reunión.

Mientras tanto, sigue haciendo preguntas en chromium-groups, considera participar en el WECG y, además, informa cualquier problema de documentación en el repositorio de GitHub de developer.chrome.com.

Gracias nuevamente por formar parte de la comunidad de desarrolladores de extensiones.