¿Qué sucederá con las extensiones de Chrome?

Amy Steam
Amy Steam

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 de la comunidad de WebExtensions para que las APIs de extensiones funcionen de manera más consistente en todos los navegadores.

En esta publicación, compartiremos contigo algunos cambios en los que ha trabajado 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 en este trimestre. ¡Comencemos!

Nuevas APIs y funciones de extensiones

En esta sección, quiero destacar algunos lanzamientos significativos de API, repasar brevemente otras mejoras de API y compartir las próximas versiones.

Aspectos destacados

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 necesitan 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 instancias en las que tu documento necesita 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 para crear un documento fuera de pantalla. Esto te permite realizar dos tareas relacionadas en el mismo documento.

Nueva API del panel lateral 🎉

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

Una extensión del diccionario que muestra la definición de una palabra seleccionada
Extensión del 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 service worker de extensión. En Chrome 110, se quitó la duración máxima obligatoria de cinco minutos para los service workers de extensión. 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 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: En Chrome 111, no se perduraban las combinaciones de teclas para extensiones, declaradas en el manifiesto en "commands._execute_action", durante la conversión a MV3.
  • API de descargas: La IU de descargas predeterminada de Chrome pasó de una biblioteca en la parte inferior a la derecha 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 de historial local. Esto puede generar más entradas en el historial y un mayor número de visitas. Se agregó isLocal a VisitItem en Chrome 115 (se espera que sea 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 completa de la aplicación. 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, se aumentó el tamaño de almacenamiento de chrome.session a 10 MB. Luego, se cambió el tamaño de almacenamiento de chrome.local para que coincida en 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 obtener una lista de los próximos cambios relacionados con la migración de MV3, consulta nuestra página de problemas conocidos. Además, tenemos previsto agregar las siguientes funciones:

  • API de DeclarativeNetRequest: El valor predeterminado de la propiedad isUrlFilterCaseSensitive cambiará a false. Consulta el subproceso 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, el elemento está 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 el documento fuera de pantalla, está abierta. Consulta la propuesta de WECG.
  • Trabajadores de servicio: Agregaremos keep-alives sólidos a las APIs de Chrome que muestran mensajes para los usuarios: 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 manera 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 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 ver estos anuncios apenas 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. Agradecemos a todos los que se tomaron el tiempo para hacer preguntas sobre chromium-group y para informar problemas de documentación en developer.chrome.com.

Aspectos destacados

  • La nueva sección Migración de MV3 proporciona formas prácticas de convertir extensiones de Manifest V2 a Manifest V3.
  • En la guía Service Workers de extensión, se proporciona información detallada sobre los temas de los service workers de extensión. Estos incluyen cómo se registran y actualizan, cómo es 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 extensión. Crea una extensión del cuadro multifunción que proporciona 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 de las solicitudes netas declarativas.
  • Mejoras en la explicación de la secuencia de comandos del contenido

💡 ¿Sabías que...?

Antes de terminar, queremos 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 estamos trabajando en el proceso).
  • Puppeteer ahora admite pruebas en modo sin interfaz gráfica mediante --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 pruebas 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. Este paso es importante porque algunos permisos pueden inhabilitar la extensión hasta que el usuario vuelva a otorgar 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 para crear nuevos espacios que nos permitan conectarnos con ustedes, como crear grupos focales y reuniones.

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

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