¿Qué sucederá con las extensiones de Chrome?

Hasta ahora, el 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 de la comunidad WebExtensions para que las APIs de extensiones funcionen de manera más coherente en los navegadores.

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

Nuevas API de extensión y funciones

En esta sección, quiero destacar algunos lanzamientos importantes de la API, revisar brevemente otras mejoras de la API y compartir los próximos lanzamientos de la API.

Lo más destacado

Documentos fuera de pantalla

La API de Offscreen se introdujo en Chrome 109. Permite que las extensiones de Manifest V3 manejen casos de uso que necesiten interacción con el DOM o la ventana, lo que no se puede realizar en el service worker de extensiones. Además, Chrome 114 introdujo dos motivos adicionales fuera de pantalla: 'WORKERS' para las instancias en las que tu documento debe generar 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 pantalla. Esto te permite realizar dos tareas relacionadas en el mismo documento.

Nueva API de Side Panel 🎉

Antes, la única forma de crear barras laterales en extensiones era inyectar un nuevo elemento 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 en la barra lateral complementaria para los usuarios de una manera mucho más directa. Obtenga más información acerca de cómo la API de Side Panel 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 de chrome-extensions-samples.

Service Workers más robustos

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

Más lanzamientos de API

  • 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ó en Chrome 111 el error por el que los atajos de extensiones, declarados en el manifiesto en "commands._execute_action", no pertenecían durante la conversión a MV3.
  • API de descargas: La IU de descargas predeterminada de Chrome se movió de una biblioteca en la parte inferior al lado derecho del cuadro multifunción. 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 del historial local. Esto puede generar más entradas del historial y recuentos de visitas más altos. Se agregó isLocal a VisitItem en Chrome 115 (se espera que esté estable más adelante 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 la 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 Chrome 114.

Próximamente…

Las próximas versiones de Chrome presentarán muchas funciones para facilitar la migración de extensiones a Manifest V3. Para ver una lista de los próximos cambios relacionados con la migración de 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 hilo de WECG.
  • La API de File Handling permitirá que las extensiones de ChromeOS abran archivos con extensiones de archivo y tipos de MIME especificados. Actualmente, esta función se encuentra detrás de una marca.
  • API del entorno de ejecución: Lanzaremos runtime.getContexts() para reemplazar extension.getViews(), que dejó de estar disponible. Esto permitirá que las extensiones determinen si una página de extensión, como el panel lateral o un documento fuera de pantalla, está abierta. Consulta la propuesta de WECG.
  • Service workers: Agregamos un sistema keep-alive sólido a las APIs de Chrome que muestran una instrucción del usuario: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() y management.uninstall().
  • API de Side Panel: 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 un menú contextual.
  • API de TabCapture: Agregamos la capacidad de llamar a getMediaStreamId() desde el service worker de extensión y de obtener un MediaStream desde un ID de transmisión en un documento fuera de pantalla. Consulta Grabación de audio y captura de pantalla para ver ejemplos.

Consulta la página Novedades de las extensiones para enterarte de estos anuncios apenas estén disponibles en Chrome Beta.

Actualizaciones de la documentación y orientación adicional sobre Manifest V3

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

Lo más destacado

  • La nueva sección Migración de MV3 proporciona formas prácticas de convertir las extensiones de Manifest V2 a Manifest V3.
  • En la guía sobre los service workers de extensiones, se proporciona información detallada sobre los temas de los service workers de extensiones. Estos incluyen 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 Controla eventos con service workers, se enseñan los conceptos básicos de los service workers de extensiones. Crea una extensión del cuadro multifunción que te brinda acceso rápido a las páginas de referencia de la API de extensiones.

Más novedades

Próximamente…

  • Cómo migrar código alojado de forma remota a Manifest V3
  • Cómo ejecutar pruebas automatizadas de extensiones de Chrome
  • Se mejoró la orientación sobre solicitudes de red declarativas.
  • Mejoras en la explicación del guion de contenido

💡 ¿Sabías que...?

Antes de concluir, queríamos compartir algunas herramientas y estadísticas útiles:

  • Chrome comenzó a trabajar para 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 el 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 pueden inhabilitar la extensión hasta que el usuario vuelva a otorgar el acceso.

¡Pongámonos en contacto! 🙌

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

Mientras tanto, sigue haciendo preguntas sobre los chromium-groups, considera participar en el programa WECG y, luego, informa cualquier problema con la documentación en el repositorio de GitHub de developer.chrome.com.

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