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.
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
() ygetBadgeTextColor()
. 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 asetShelfEnabled()
. - API de History:
chrome.history.getVisits()
ychrome.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
aVisitItem
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
ytimeoutMsForNonInteractive
. - 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 dechrome.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 reemplazarextension.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()
ymanagement.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
- En Google Analytics 4, se muestra cómo hacer un seguimiento del uso de la ventana emergente de tu extensión y los eventos de service worker.
- En Uso de la ubicación geográfica, se muestra cómo obtener la ubicación geográfica de la extensión por medio de la API de Offscreen.
- En Grabación de audio y captura de pantalla, se explica cómo capturar audio y video de pestañas, ventanas o pantallas con las APIs de
chrome.tabCapture
ynavigator.mediaDevices.getDisplayMedia()
. - Agregamos nuevas sugerencias de depuración a la guía Depuración de extensiones.
- Actualizamos los lineamientos de advertencias de permisos para que sea más fácil comprender cómo funcionan las advertencias de permisos y cómo puedes brindar una mejor experiencia del usuario. Además, existen formas prácticas de verificar qué advertencias verá.
- Nuestro equipo y colaboradores también agregaron nuevos ejemplos de extensión de Manifest V3: WASM en extensiones, Demostración de la API de Scripting, guías de soluciones de la API de Side Panel y muestras de la API de DeclarativeNetRequest. Puedes explorar otras muestras de extensiones en nuestro repositorio de muestras de GitHub.
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.