Novedades de las extensiones de Chrome

Consulta esta página con frecuencia para conocer los cambios en las extensiones de Chrome, la documentación de las extensiones, la política relacionada y otros cambios. Encontrarás otros avisos publicados en el grupo de Google de Extensiones. En el programa de lanzamientos de Chrome, se indican las fechas de lanzamiento de las versiones estables y beta.

Entrada de blog: Novedades de las extensiones de Chrome (octubre de 2024)

Publicado el

Es hora de otro resumen de lo que sucede en las extensiones de Chrome: tenemos actualizaciones interesantes sobre la integración de IA, nuevas APIs, eventos y videos. Obtén más información en la edición de octubre de What's happening in Chrome Extensions.

Únete al desafío de IA integrada

Publicado el

Chrome lanzó el Desafío de IA integrada: Te invitamos a crear aplicaciones web y extensiones de Chrome innovadoras con las APIs y los modelos de IA integrados de Chrome y tener la oportunidad de ganar premios por un total de USD 65,000.

Regístrate y obtén más información en el sitio web del Desafío de IA integrada. No vemos la hora de ver lo que crearás cuando combines la Web con la IA.

Chrome 130: action.onUserSettingsChanged

Publicado el

A partir de Chrome 130, está disponible el evento action.onUserSettingsChanged. Esto sigue una propuesta del grupo de la comunidad WebExtensions. Gracias a Microsoft por contribuir a Chromium.

Chrome 130: StorageArea.getKeys()

Publicado el

A partir de Chrome 130, el método getKeys() está disponible en la interfaz de StorageArea que usa la API de chrome.storage. Esto se debe a una propuesta en el grupo de la comunidad de WebExtensions.

Chrome 128: Coincidencia del encabezado de respuesta en la solicitud de red declarativa

Publicado el

A partir de Chrome 128, agregamos compatibilidad con la coincidencia de encabezados de respuesta en la API de Declarative Net Request. Esta era una solicitud común, en particular para hacer coincidir el encabezado Content-Type, y diseñamos una API adecuada junto con el grupo comunitario de WebExtensions.

Actualizamos nuestra referencia de la API para incluir los nuevos campos responseHeaders y excludedResponseHeaders. Puedes usarlos para verificar la existencia y el valor de un encabezado determinado.

Como parte de esta actualización, agregamos una nueva sección de evaluación de reglas a nuestra documentación, en la que se explica cómo se hacen coincidir las reglas. En el caso de la coincidencia de encabezados en particular, las reglas solo se pueden ejecutar una vez que se reciben los encabezados de respuesta, por lo que se aplican en una etapa posterior que otras reglas. Esto significa que la solicitud llega al servidor antes de bloquearse o redireccionarse.

Video: ¿Qué son las secuencias de comandos de contenido?

Publicado el

Obtén información sobre las secuencias de comandos de contenido en las extensiones de Chrome, incluido cómo registrar CSS y JavaScript para que se ejecuten en una página en particular. Mira el video completo.

Actualizaciones importantes de las políticas

Publicado el

El equipo de Chrome Web Store publicó una serie de actualizaciones en la página Políticas del programa para desarrolladores diseñadas para fomentar el desarrollo de productos de alta calidad, evitar comportamientos engañosos y garantizar el consentimiento informado de los usuarios. Rebecca Soares, la administradora de políticas de Chrome Web Store, resumió todas las actualizaciones en la entrada de blog Extensiones de Chrome: Actualizaciones importantes de políticas.

Entrada de blog: Novedades de las extensiones de Chrome (julio de 2024)

Publicado el

En los últimos tres meses, lanzamos varias actualizaciones y funciones nuevas significativas, incluido el inicio de la baja gradual del manifiesto V2. Mantente al día con la edición de julio de What's happening in Chrome Extensions.

Video: ¿Qué es un código alojado de forma remota?

Publicado el

Patrick, del equipo de Extensiones de Chrome, explica el concepto de código alojado de forma remota (RHC) en las extensiones de Chrome. Obtén información sobre por qué ya no se permite RHC, cómo detectarlo y qué hacer si necesitas actualizar tu extensión. Mira el video completo.

Chrome 127: Nueva API de action.openPopup

Publicado el

A partir de Chrome 127, la API de action.openPopup está disponible para todas las extensiones. Anteriormente, solo estaba disponible en Canary o para extensiones instaladas por una política.

Video: Entrevista al equipo de Confianza y Seguridad

Publicado el

El equipo de DevRel de Chrome Extensions se reunió con el equipo de Confianza y seguridad que lidera las revisiones en Chrome Web Store para responder tus preguntas. Mira el video completo.

Entrada de blog: Comienza la baja gradual de Manifest V2

Publicado el

A partir del 3 de junio en los canales de Chrome Beta, Dev y Canary, si los usuarios aún tienen instaladas extensiones de Manifest V2, algunos comenzarán a ver un banner de advertencia cuando visiten su página de administración de extensiones (chrome://extensions), que les informará que algunas extensiones (Manifest V2) que tienen instaladas pronto dejarán de ser compatibles. Obtén más información en el anuncio oficial

Actualizaciones de la IU del panel lateral

Publicado el

Hace poco, realizamos algunos cambios en la IU del panel lateral, como agregar un ícono de fijar y quitar el ícono global del panel lateral. Obtén más información en el PSA y consulta nuestra documentación y nuestros ejemplos actualizados.

Entrada de blog: Extensiones de Chrome en Google I/O 2024

Publicado el

Ya pasó otro Google I/O y cubrimos todas las emocionantes actualizaciones de extensiones. Ve a YouTube para mirar el video completo y lee nuestra entrada de blog para conocer algunos de los aspectos más destacados.

Omitir la revisión de los cambios aptos en la solicitud de red declarativa

Publicado el

Chrome Web Store ahora te permite omitir la revisión para cambios aptos cuando usas la API de Declarative Net Request. Obtén más información sobre la elegibilidad y cómo habilitar esta función en la documentación de Chrome Web Store.

deployPercentage disponible en la API de Chrome Web Store

Publicado el

Recientemente, actualizamos nuestra documentación de la API de Chrome Web Store para incluir información sobre deployPercentage, que te permite asignar un porcentaje de una implementación de lanzamiento parcial. Obtén más información sobre deployPercentage.

Chrome 126: Pruebas de origen en extensiones

Publicado el

Chrome 126 presenta un nuevo campo manifest.json, trial_tokens, que te permite habilitar las pruebas de origen y de baja en todas las plataformas de extensiones. Para obtener más información, consulta la guía.

Entrada de blog: Novedades de las extensiones de Chrome (abril de 2024)

Publicado el

Publicamos una nueva edición de What's Happening in Chrome Extensions. En la publicación, se analiza en qué ha estado trabajando el equipo de extensiones durante los últimos meses. Esto incluye la reversión de versión en Chrome Web Store, una mejor compatibilidad con Firebase Auth y más lanzamientos y actualizaciones de APIs.

Reversiones de versión en el Panel del desarrollador de Chrome Web Store

Publicado el

Revierte tu extensión a la versión publicada anterior en Chrome Web Store sin necesidad de revisión adicional. Para obtener más información, consulta la entrada de blog y la documentación.

Chrome 124: API de documentScan avanzada

Publicado el

Ahora está disponible una API de documentScan avanzada en ChromeOS para descubrir y recuperar imágenes de los escáneres de documentos adjuntos.

Chrome 124: Compatibilidad con WebGPU en Service Workers

Publicado el

Desde Chrome 124, los service workers admiten WebGPU. Para un comienzo rápido, consulta el ejemplo de extensión de WebGPU.

Chrome 123: La API de Events admite el filtrado por bloques CIDR.

Publicado el

La API de Eventos ahora admite el filtrado con bloques de enrutamiento entre dominios sin clases (CIDR). Un bloque CIDR es una colección de direcciones IP que comparten un prefijo de red y la misma cantidad de bits. Anteriormente, un desarrollador que necesitaba filtrar varias direcciones IP debía configurar una regla de filtro para cada una de las direcciones en el rango del bloque. Ahora, cuando una extensión llama a addListener(), una regla pasada significa que solo se llamará al controlador de eventos cuando la parte del host de una URL sea una dirección IP y se encuentre en cualquiera de los bloques CIDR especificados en un array.

Chrome Web Store: Actualizaciones de los requisitos de longitud de los nombres de extensiones

Publicado el

En Chrome Web Store, ahora hay un límite universal de 75 caracteres para el campo "name" de una extensión en manifest.json. Anteriormente, el límite para el inglés era de 45 caracteres, y no había restricciones para el campo "name" en otras configuraciones regionales.

El objetivo original era permitir las diferencias culturales y de idioma que quizás no se puedan capturar en la misma cantidad de caracteres. Lamentablemente, una pequeña cantidad de desarrolladores abusó de esta función para enviar spam a la tienda. Como resultado, estamos implementando un nuevo límite universal, un aumento a 75 caracteres. Este límite abarca casi todas las extensiones de la tienda en la actualidad, por lo que es probable que no necesites realizar ninguna acción como resultado de este cambio. Si intentas subir una extensión que tiene un nombre más largo que el límite máximo, la tienda bloqueará la carga.

Entrada de blog: El recorrido de eyeo para probar la suspensión de service workers

Publicado el

En esta publicación del equipo de Extension Engine de eyeo, analizamos el problema de probar los trabajadores de servicio de extensión. En Manifest V2, las extensiones se ejecutaban en una página en segundo plano, que estaba activa durante todo el ciclo de vida de la extensión. En su lugar, el manifiesto V3 usa trabajadores del servicio que, por diseño, apagan cuando no son necesarios para conservar los recursos. Esto plantea ciertos desafíos de prueba. En esta publicación, se explica cómo eyeo abordó estos desafíos.

Chrome 123: Las alarmas ahora se ejecutan cuando el dispositivo está inactivo.

Publicado el

Las alarmas configuradas con la API de chrome.alarms ya no se retrasan cuando un dispositivo entra en modo de suspensión. Cuando el dispositivo se active, la alarma se activará una vez, sin importar cuántas alarmas se hayan perdido. Por ejemplo, supongamos que una alarma está configurada para sonar una vez por hora y el dispositivo en el que se encuentra está inactivo desde las 12:55 a.m. hasta las 2:05 a.m. En ese caso, solo la alarma de las 2:00 a.m. activa el evento onAlarm. Se activará lo más cerca posible de las 2:00 a.m. y, de inmediato, cuando se active un dispositivo si estaba suspendido.

Este cambio permite que Chrome cumpla con el comportamiento acordado en el grupo comunitario de extensiones web.

Entrada de blog: Cambios en el comportamiento de bfcache con puertos de mensajes de extensión

Publicado el

La memoria caché atrás/adelante (bfcache) es una optimización del navegador que permite la navegación instantánea hacia adelante y hacia atrás. A partir de Chrome 123, cuando se almacena una página con un puerto de extensión abierto en la bfcache, se cierra el canal de mensajes, lo que significa que no se enviarán mensajes a esa página. En consecuencia, las secuencias de comandos de extensión deben escuchar eventos del ciclo de vida, como onDisconnect, y configurar una conexión nueva cuando se restablezca la página desde BFCache.

Para obtener más información y código de muestra, consulta Cambios en el comportamiento de BFCache con puertos de mensajes de extensión.

Chrome 122: Compatibilidad con promesas en las APIs de extensiones asíncronas

Publicado el

Terminamos de implementar la compatibilidad con Promise para todos los métodos de API de extensión asíncrona. Esto se realizó para modernizar los métodos de API mediante la mejora de la ergonomía de las operaciones asíncronas. Algunos métodos (por ejemplo, desktopCapture.chooseDesktopMedia()) solo admiten devoluciones de llamada porque sus plataformas actuales no son compatibles con las promesas. Para la retrocompatibilidad, las devoluciones de llamada aún son compatibles. Si encuentras una promesa que falla, informa un error.

Nueva guía para la comunicación en tiempo real

Publicado el

Acabamos de publicar guías sobre las opciones en tiempo real de las extensiones. Las actualizaciones en tiempo real proporcionan una ruta de comunicación instantánea desde tus servidores hasta las instalaciones de extensiones. Además, tenemos una nueva guía para usar chrome.gcm, Web Push.

Nueva guía y muestra: Cómo probar la finalización de los service workers

Publicado el

Acabamos de publicar una guía sobre cómo probar la finalización del service worker con Puppeteer. En el ejemplo adjunto, se muestra esto en Puppeteer y Selenium.

Se actualizó el ejemplo para la mensajería nativa.

Publicado el

Acabamos de publicar un ejemplo actualizado para los mensajes nativos. Esta API permite que tu extensión se inicie y se comunique con otra aplicación. Gracias al colaborador de GitHub Shubham-Rasal por su trabajo en esto.

Chrome 121: Nueva propiedad lastAccessed en pestañas.Tab

Publicado el

Se agregó una propiedad nueva llamada lastAccessed al objeto tabs.Tab. Esta propiedad indica cuándo se activó la pestaña por última vez. El valor que se muestra está en milisegundos desde el ciclo de entrenamiento.

Chrome 121: Las claves "en segundo plano" no admitidas ahora muestran una advertencia

Publicado el

En el cambio de Manifest V2 a Manifest V3, se cambiaron los elementos secundarios de la clave de manifiesto "background" para admitir el reemplazo de secuencias de comandos en segundo plano por service workers de extensión. Anteriormente, agregar las claves de Manifest V2 "scripts", "page" o "persistent" a la clave "background" de una extensión de Manifest V3 generaba un error. La presencia de estas claves ahora activa una advertencia.

Esto se hace para habilitar el uso de un solo archivo de manifiesto en extensiones en varios navegadores, según una propuesta en el grupo de la comunidad.

Chrome 120: El nivel de detalle mínimo de la alarma se redujo a 30 segundos

Publicado el

A partir de Chrome 120, las extensiones de Manifest V3 pueden usar la API de chrome.alarms con retrasos o períodos de 30 segundos, en lugar de requerir valores de 60 segundos o más.

Entrada de blog: Reanuda la transición a Manifest V3

Publicado el

Se actualizó el cronograma de compatibilidad con Manifest V2. Consulta nuestra entrada de blog de noviembre de 2023 para obtener más detalles.

Entrada de blog: Mejoras en la compatibilidad con el filtrado de contenido en Manifest V3

Publicado el

Obtén información sobre cómo mejoramos la API de declarativeNetRequest en nuestra nueva entrada de blog.

Entrada de blog: Novedades de Chrome 120 para extensiones

Publicado el

Recientemente, se lanzó la versión beta de Chrome 120. Para obtener un resumen de las actualizaciones importantes que son relevantes para los desarrolladores de extensiones, lee nuestra nueva entrada de blog: Novedades de Chrome 120 para Extensiones. Este lanzamiento también marca un hito importante, ya que quita los dos últimos elementos (userScripts, controlador de archivos en ChromeOS) de la lista de brechas fundamentales de la plataforma.

Aviso importante: Cambio en el manejo de las URLs de las políticas de privacidad en el Panel del desarrollador

Publicado el

Ahora las políticas de privacidad en el Panel del desarrollador se agregan en el nivel del elemento. Esto te permite proporcionar una política de privacidad diferente por elemento. Obtén más información sobre este cambio en nuestro Denuncia.

Video: Chat con Matt Frisbie

Publicado el

Publicamos un video nuevo en el canal de YouTube de Chrome for Developers en el que se chatea con el autor y experto de Google Developers, Matt Frisbie. Míralo aquí.

Nueva guía para probar las extensiones

Publicado el

Acabamos de publicar una nueva guía sobre cómo escribir pruebas automatizadas para extensiones, incluida cómo escribir pruebas de unidades, una guía general y un instructivo sobre pruebas de extremo a extremo.

Entrada de blog: Novedades de las extensiones de Chrome (octubre de 2023)

Publicado el

Acabamos de publicar la segunda edición de What's Happening in Chrome Extensions. En la publicación, se analiza en qué ha estado trabajando el equipo de extensiones durante los últimos meses, lo que incluye abordar los problemas de estabilidad del trabajador de servicio y avanzar mucho en la eliminación de todas las brechas de la plataforma de MV3. También compartimos las próximas versiones de las APIs, como la API de Reading List y la API de User Scripts.

Se aumentaron los límites de los conjuntos de reglas estáticos en la API de Declarative Net Request

Publicado el

Después de los comentarios en el grupo de la comunidad de Extensiones web, aumentaremos significativamente el límite de conjuntos de reglas estáticos habilitados de 10 a 50. Además, aumentaremos de 50 a 100 la cantidad total de conjuntos de reglas estáticos permitidos. Por el momento, esta función está disponible en Canary.

Se mejoró la orientación sobre el código alojado de forma remota

Publicado el

Un requisito de Manifest V3 es que las extensiones ya no pueden usar código alojado de forma remota. Aunque esto ha sido parte de nuestra guía de migración desde el principio, pensamos que valía la pena mejorar la orientación sobre este problema. En esa página, ahora se proporciona más información, en la que se describen las posibilidades de Manifest V3 y más información sobre estrategias de actualización.

Hay un complemento relacionado con la sección Solución de problemas relacionados con incumplimientos en Chrome Web Store. Se agregó una nueva sección en la que se describen los motivos comunes por los que se rechazan las extensiones con código alojado de forma remota.

Chrome 118: isUrlFilterCaseSensitive ahora es falso de forma predeterminada

Publicado el

A partir de Chrome 118, la propiedad isUrlFilterCaseSensitive de la API de chrome.declarativeNetRequest cambió a false de forma predeterminada. Si deseas mantener el comportamiento anterior, puedes establecer isUrlFilterCaseSensitive en true de forma explícita en tus reglas de declarativeNetRequest.

Esto se debe a discusiones en el grupo de la comunidad de Extensiones web. Firefox y Safari ya implementaron un cambio similar.

Documentación sobre las APIs de cookies y almacenamiento web

Publicado el

Publicamos una nueva guía sobre cómo funcionan las APIs de cookies y almacenamiento web en las extensiones de Chrome. Incluye detalles sobre los cambios en la partición de cookies y almacenamiento en Privacy Sandbox, un proyecto en curso para dar de baja las cookies de terceros a través de la creación de una serie de nuevas APIs de la plataforma web, y detalles sobre cómo funcionan en las extensiones.

Ahora se pueden buscar muestras de extensiones

Publicado el

Recientemente, creamos una página que te permite buscar muestras de extensiones de Chrome. La página de búsqueda tiene varias opciones. Un cuadro de búsqueda te permite buscar texto en los títulos de muestra. Puedes restringir la búsqueda por permiso o API de extensión. Un filtro adicional te permite restringir la búsqueda a muestras funcionales (casos de uso) o de API.

Xuezhou Dai, participante de Google Summer of Code, creó esta nueva página de ejemplo, que también contribuyó con varias muestras nuevas. Puedes leer sobre sus experiencias el verano pasado en su publicación en nuestro blog.

Como antes, nuestras muestras de código siguen disponibles en GitHub para clonarse o bifurcarse.

Chrome 118: Se realizaron cambios en el archivo de apertura: URLs de esquemas

Publicado el

A partir de Chrome 118, las extensiones deberán tener habilitado el parámetro de configuración "Permitir acceso a URLs de archivos" desde la página chrome://extensions para abrir URLs de esquema file:// con las APIs de Tabs o Windows. Para verificar este acceso de forma programática, llama a chrome.extension.isAllowedFileSchemeAccess(). Firefox ya restringe las URLs de los archivos, y Safari admite el cambio. Para obtener más información, lee la publicación en el Grupo de Google de extensiones.

Chrome 117: Se expandieron las protecciones de URL en las navegaciones de la API de la extensión

Publicado el

Anteriormente, la navegación que se activaba desde las llamadas a la API de extensión para tabs.update(), tabs.create() y windows.create() emitía un error para algunas URLs chrome://. Además, se prohíbe llamar a tabs.update() con una URL de JavaScript. En la versión 117, estas protecciones en las URLs de JavaScript se expandieron al método tabs.create() y se agregaron varias URLs chrome:// adicionales a la lista de URLs prohibidas que se aplica a todos los métodos mencionados anteriormente.

Orientación mejorada para la API de declareNetRequest

Publicado el

La API de chrome.declarativeNetRequest bloquea o modifica las solicitudes de red mediante la especificación de reglas declarativas. Esto permite que las extensiones modifiquen las solicitudes de red sin interceptarlas ni ver su contenido, lo que proporciona más privacidad a los usuarios. También es difícil de usar. Con eso en mente, reescribimos la guía de una manera que creemos que ofrece una imagen más clara de cómo implementar conjuntos de reglas declarativos. Lee la nueva sección en el vínculo anterior.

Cómo usar tu cuenta de Google Analytics con Chrome Web Store

Publicado el

Chrome Web Store ofrece integración con Google Analytics, que te permite ver las estadísticas de tu ficha de Chrome Web Store, además de la vista que se ofrece en el Panel del desarrollador. Para obtener más información, consulta Cómo usar tu cuenta de Google Analytics con Chrome Web Store.

Chrome 115: Herramientas para desarrolladores supera las secuencias de comandos de contenido de forma predeterminada

Publicado el

Las secuencias de comandos de contenido inyectadas ahora están en la lista de elementos ignorados de Herramientas para desarrolladores de forma predeterminada. Esto no afecta los puntos de interrupción, pero sí significa que las secuencias de comandos de contenido se omitirán durante la depuración y se ignorarán las excepciones de estas secuencias. Cuando una secuencia de comandos del contenido está abierta en la pestaña Fuentes, un banner te alerta si está activada y te brinda la opción de quitarla de la lista de elementos ignorados. Para desactivar este comportamiento, abre DevTools, ve a Configuración y, luego, a Lista de elementos ignorados. Para obtener más información, consulta Novedades de DevTools.

Versión beta de Chrome 116: Más de lo que podemos incluir aquí

Publicado el

Chrome 116 es una gran versión para las extensiones. Ahora puedes abrir paneles laterales de forma programática. Un nuevo método te permite saber si hay un documento fuera de la pantalla activo. Se realizaron varias mejoras en los service workers. Se realizaron suficientes mejoras en 116 y escribimos una entrada de blog sobre ellas. Chrome 116 está en versión beta desde el 19 de julio.

Entrada de blog: Qué sucede en las extensiones de Chrome

Publicado el

Acabamos de publicar una descripción general de los cambios y mejoras en las extensiones de este año. En la publicación, se analizan las nuevas funciones principales del año, como la API del panel lateral, las mejoras de los trabajadores del servicio y los documentos fuera de pantalla. También podrás ver en qué estamos trabajando este trimestre. En el artículo, hay mucho más, con vínculos a todo.

Nueva guía y muestra: Obtén información para usar Google Analytics 4 en tu extensión de Chrome

Publicado el

Publicamos nuevos ejemplos y lineamientos de Google Analytics y geolocalización:

Chrome 115: Especifica varios motivos en chrome.offscreen.createDocument().

Publicado el

Ahora puedes especificar varias enums reason cuando llames a chrome.offscreen.createDocument(). Úsalo cuando se use un documento fuera de la pantalla para varios fines diferentes. El navegador usa los motivos proporcionados para determinar la vida útil del documento fuera de la pantalla.

Nueva herramienta: Herramienta de prueba de actualizaciones de extensiones

Publicado el

Acabamos de lanzar la herramienta de prueba de actualizaciones de extensiones, un servidor de actualización de extensiones local que se puede usar para probar actualizaciones de extensiones de Chrome durante el desarrollo local, incluidos los otorgamientos de permisos. La herramienta muestra el flujo de actualización del usuario, lo que incluye mantener una extensión inhabilitada hasta que un usuario otorgue los permisos solicitados recientemente. Esta herramienta es particularmente útil para simular los cambios de permisos solicitados cuando se actualiza una extensión de Manifest V2 a Manifest V3.

Chrome 114: Nueva API de Side Panel

Publicado el

Presentamos la nueva API de Side Panel, una plataforma complementaria que permite a los usuarios acceder a herramientas junto con el contenido que están explorando. Para obtener más información, consulta la referencia de la API del panel lateral. Además, agregamos muchas muestras de paneles laterales a nuestro repositorio de muestras de GitHub. También compartimos más información sobre los paneles laterales en la nueva entrada de blog Cómo diseñar una experiencia del usuario superior con la nueva API de Side Panel. También se revisaron nuestra política de lineamientos de calidad y las prácticas recomendadas para brindar más orientación sobre la creación de extensiones de panel lateral de alta calidad.

Tus comentarios son importantes para crear esta API. Comparte tus ideas y solicitudes de funciones en chromium-groups. No te pierdas las novedades a medida que seguimos mejorando la API del panel lateral.

Nuevos ejemplos: WASM en extensiones

Publicado el

Hay dos ejemplos nuevos disponibles que demuestran cómo usar WASM en una extensión:

Agradecemos especialmente al colaborador de GitHub @daidr por estos ejemplos.

Orientación actualizada para la migración a Manifest V3

Publicado el

Actualizamos la sección Problemas conocidos de nuestra guía de migración a Manifest V3 con una lista actualizada de las brechas en la plataforma de extensiones que tenemos la intención de cerrar antes de anunciar un nuevo cronograma de baja de Manifest V2.

Cómo grabar audio y video con Manifest V3

Publicado el

Acabamos de publicar un nuevo artículo llamado Grabación de audio y captura de pantalla, en el que se explica cómo grabar audio o video desde una pestaña, una ventana o una pantalla en el manifiesto V3. En este artículo, se describen varios enfoques para la grabación que involucran la API de chrome.tabCapture y la función getDisplayMedia().

Chrome 114: Aumento de la cuota de storage.local

Publicado el

Aumentamos la cuota de la propiedad storage.local a aproximadamente 10 MB. Se aceptó en el grupo de la comunidad de extensiones web. Esto alinea storage.local con storage.session, que cambió en Chrome 112.

Nuevo instructivo y ayuda sobre el trabajador del servicio de extensión

Publicado el

Los service workers son una parte integral de las extensiones de Chrome. Acabamos de publicar un instructivo en el que se explican los aspectos básicos del registro, la depuración y la interacción con los trabajadores de servicio. También agregamos una nueva guía de trabajadores del servicio en la que se explican conceptos importantes con más detalle. Ampliaremos esta sección en los próximos meses.

Más sugerencias para solucionar problemas relacionados con incumplimientos en Web Store

Publicado el

Para facilitar la publicación en Chrome Web Store, agregamos nuevas instrucciones en dos áreas. La guía sobre la funcionalidad mínima se centra en proporcionarles beneficios a los usuarios y enriquecer su experiencia de navegación. La orientación para los anuncios de afiliados consiste en informar a los usuarios sobre las extensiones mediante códigos o vínculos de afiliados para la monetización, así como brindarles cierto grado de control al solicitar acciones por parte del usuario antes de la inclusión.

Nuevas instrucciones para el convertidor de manifiestos de extensiones

Publicado el

Volvimos a escribir el archivo README para el convertidor de manifiestos de extensiones para que pueda ver más fácilmente lo que debe hacer después de ejecutar la herramienta. El conversor ayuda a migrar las extensiones compiladas en Manifest V2 a Manifest V3. En el nuevo archivo README, se describe lo que hace la herramienta con palabras que coinciden estrechamente con las de la lista de tareas de la guía de migración. El convertidor no hace todo, pero elimina muchas tareas que no requieren una decisión humana.

Chrome 113: Nuevos motivos para documentos fuera de la pantalla

Publicado el

Se agregaron dos nuevos tipos de motivos a la API de Offscreen Documents. Usa LOCAL_STORAGE para acceder a la API de localStorage de la plataforma web. Usa WORKER cuando crees trabajadores web.

Google Analytics 4 ahora está disponible en el panel para desarrolladores

Publicado el

El Panel del desarrollador de Chrome Web Store ahora es compatible con Google Analytics 4 (GA4). Simplificamos la configuración de Google Analytics y facilitamos la administración de accesos para los publicadores de grupos. Si anteriormente usabas Universal Analytics de Google para hacer un seguimiento de la actividad de la ficha de Play Store, deberás tomar medidas a más tardar el 1 de julio de 2023 para asegurarte de seguir recibiendo datos sobre tu ficha de Play Store. Para obtener más información, consulta la entrada en el Grupo de Google de Extensiones de Chromium.

La API de File Handling llega a ChromeOS

Publicado el

La API de File Handler está disponible para experimentar en ChromeOS en Canary para las versiones 112 y 113. Permite que las extensiones de ChromeOS abran archivos con tipos de MIME y extensiones de archivo especificados. Para implementar el manejo de archivos, agrega un conjunto de reglas a manifest.json. Esta función funciona de la misma manera que para las apps web progresivas. Para obtener más información, consulta el artículo en otro lugar de este sitio.

Para habilitar el manejo de archivos, haz lo siguiente:

  • A partir de la versión 112, inicia Chrome con la marca --enable-features=ExtensionWebFileHandlers.
  • A partir de la versión 113, pega os://flags/#extension-web-file-handlers en la barra omni de Chrome y selecciona "Habilitado" en el menú desplegable.

Esperamos lanzar esta función en Chrome 115 a fines de junio. No te pierdas las novedades.

Nuevos ejemplos: Declaraciones dinámicas y inserción programática

Publicado el

Compilamos una muestra nueva para la API de chrome.scripting. Muestra declaraciones dinámicas, en las que se registra una secuencia de comandos de contenido en el tiempo de ejecución, y la inserción programática, en la que se ejecuta una secuencia de comandos en una pestaña que ya está abierta.

Muestras nuevas: Casos de uso de la solicitud de red declarativa

Publicado el

Hay tres ejemplos nuevos disponibles que demuestran la API de Declarative Net Request. Cada una demuestra la implementación de un solo caso de uso. En el primero, se muestra cómo bloquear las cookies. Los dos restantes demuestran el bloqueo y el redireccionamiento de URLs.

Chrome 112: Aumento de la cuota de storage.session

Publicado el

A partir de Chrome 112, la cuota de la propiedad storage.session aumentó a aproximadamente 10 MB. Se acordó en el grupo de la comunidad de extensiones web: https://github.com/w3c/webextensions/issues/350

Chrome 109: Documentos fuera de pantalla

Publicado el

Los documentos fuera de pantalla ahora están disponibles en extensiones de Manifest V3. Estos ayudan con la transición de las páginas en segundo plano a los service workers de extensiones, ya que proporcionan compatibilidad con las APIs y funciones relacionadas con el DOM. Para obtener más información, lea la entrada de blog.

Chrome 110: es una extensión habilitada

Publicado el

El método chrome.action.isEnabled() verifica de manera programática si una extensión se habilitó para una pestaña específica. Esto te evita mantener el estado habilitado de tus pestañas. Este nuevo método toma un ID de pestaña y una referencia a una devolución de llamada, y muestra un valor booleano. Tiene una limitación: las pestañas creadas con chrome.declarativeContent siempre muestran un valor falso.

(Recientemente, el espacio de nombres chrome.action recibió nuevos métodos para controlar el aspecto de las insignias de extensión. Para obtener más información, consulta Cómo configurar los colores de las insignias.

Chrome 110: Cambio en el tiempo de espera de inactividad del service worker

Publicado el

Anteriormente, un trabajador del servicio de extensión se cerraba con frecuencia a los cinco minutos. Cambiamos este comportamiento para que se asemeje más al ciclo de vida del trabajador de servicio en la Web. Un trabajador de servicio de extensión se cerrará después de treinta segundos de inactividad o si una sola actividad tarda más de 5 minutos en procesarse. Para obtener más información, consulta Mayores tiempos de vida del trabajador de servicio de extensión.

Publicación: Se pausa la baja gradual de Manifest V2

Publicado el

Se están revisando los cronogramas de baja de Manifest V2 y se posponen los experimentos programados para principios de 2023. Para obtener más información, lee la actualización en el grupo de Google chromium-extensions.

Chrome 110: Cómo configurar los colores de las insignias

Publicado el

El espacio de nombres chrome.action tiene dos métodos nuevos para brindarte más control sobre las insignias de extensión de apariencia. Los métodos setBadgeTextColor() y getBadgeTextColor() permiten que una extensión cambie y consulte el color de texto de la insignia del ícono de la barra de herramientas. Cuando se usan con setBadgeBackgroundColor y getBadgeBackgroundColor, estos nuevos métodos te permiten aplicar de manera forzosa el diseño y la coherencia de la marca.

Entrada de blog: Más detalles sobre la transición a Manifest V3

Publicado el

Aclaramos el cronograma de baja de Manifest V2. También se actualizó el cronograma de compatibilidad con Manifest V2 para reflejar esta información.

Actualización de la documentación: Problemas conocidos durante la migración a Manifest V3

Publicado el

Creamos una lista de funciones importantes en desarrollo y de errores abiertos. Nuestro objetivo con esta página es ayudar a los desarrolladores a comprender mejor el estado actual de la plataforma y a qué funciones pueden segmentar su contenido mientras se preparan para el futuro.

Chrome Web Store: Se quitó la carga de imágenes de "tarjetas de promoción grandes"

Publicado el

Chrome Web Store quitó la IU de carga de "tarjeta de promoción grande" de la pestaña Ficha de Play Store del elemento en el panel del desarrollador. Este cambio no afecta la experiencia del usuario final, ya que estas imágenes no se usaban en la IU del consumidor. Consulte esta publicación sobre las extensiones de Chromium para obtener más detalles.

Chrome 106: Permite que las páginas en URLs de file:// accedan a recursos accesibles en la Web

Publicado el

Los orígenes opacos, como los iframes en zona de pruebas y la importación dinámica, también deberían poder acceder a recursos accesibles a través de la Web, según crbug.com/1219825#c11.

Chrome 106: Se corrigió un error que permitía argumentos finales incorrectos en algunas funciones de API asíncronas.

Publicado el

Anteriormente, Manifest V3 podía proporcionar un argumento final no válido cuando se llamaba a APIs asíncronas, y Chrome no generaba errores. Con esta solución, Chrome ahora generará un error e informará que no había ninguna firma que coincida. Se recomienda a los desarrolladores que verifiquen sus extensiones en Canary para detectar errores en caso de que usen una firma incorrecta por error en una llamada a la API que se dañe debido a esta corrección de errores.

Entrada de blog: Renovación de las estadísticas de Chrome Web Store

Publicado el

Chrome Web Store tiene una experiencia renovada de estadísticas de artículos para el Panel del desarrollador de Chrome Web Store. El nuevo panel es más fácil de entender de un vistazo y consolida la información más útil desde un principio. Lee la entrada de blog para obtener más información.

Chrome 105: promesas para la API de Identity

Publicado el

Las funciones de la API de Identity ahora admiten llamadas basadas en promesas. Esto incluye un ligero cambio en la superficie de identity.getAuthToken(), en el que la devolución asíncrona establecida en una llamada basada en promesas tendrá "token" y "grantedScopes" como parámetros en un solo objeto (a diferencia de la versión de devolución de llamada que los recibe como argumentos separados para la devolución de llamada).

Chrome 104: Nueva API de favicons para Manifest V3

Publicado el

Las extensiones de Manifest V3 ahora pueden acceder a los íconos de página mediante un nuevo patrón de URL: chrome-extension://<id>/_favicon/, donde es el ID de tu extensión. Esto reemplaza la API chrome://favicons de la plataforma Manifest V2. Consulta los documentos de la API de Favicon para obtener más información.

Actualización de la documentación: Divulgación del desarrollador comerciante o no comerciante

Publicado el

Se agregó la identificación de desarrollador comerciante o no comerciante, que informa a los desarrolladores que deben autodeclarar con precisión su estado de comerciante o no comerciante.

Chrome 103: Wasm en Manifest V3 requiere wasm-unsafe-eval

Publicado el

Chrome ya no otorga script-src: wasm-unsafe-eval a las extensiones de forma predeterminada. Las extensiones que usan WebAssembly ahora deben agregar explícitamente esta directiva y el valor a extension_pages en sus declaraciones content_security_policy.

Chrome 103: Los cambios en las combinaciones de teclas de MV3 se aplican de inmediato

Publicado el

Cuando se cambia la combinación de teclas de una extensión de Manifest V3 en chrome://extensions/shortcuts, ahora las actualizaciones se aplican de inmediato. Anteriormente, la extensión se debía volver a cargar antes de que se aplicara el cambio.

Chrome 102: Secuencias de comandos de contenido dinámico en el mundo principal

Publicado el

Las secuencias de comandos de contenido registradas de forma dinámica ahora pueden especificar el mundo en el que se insertarán los recursos. Consulta scripting.registerContentScripts() para obtener más información.

Chrome 102: Nuevo campo de manifiesto "optional_host_permissions"

Publicado el

Las extensiones de Manifest V3 ahora pueden especificar la clave optional_host_permissions en manifest.json. Esto permite que las extensiones de Manifest V3 declaren patrones de coincidencia opcionales para hosts, al igual que las extensiones de Manifest V2 podrían hacerlo con la clave optional_permissions.

Chrome 102: Inyecta la propiedad de inmediato en scripting.executeScript()

Publicado el

chrome.scripting.executeScript() ahora acepta una propiedad injectImmediately opcional en su argumento injection. Si está presente y se establece como verdadero, la secuencia de comandos se insertará en el destino lo antes posible, en lugar de esperar a document_idle. Ten en cuenta que esto no garantiza que la secuencia de comandos se inserte antes de que se cargue la página, ya que la página continúa cargándose mientras se realiza la llamada a la API.

Chrome 102: Compatibilidad con la API de Omnibox en Manifest V3

Publicado el

La API de Omnibox ahora se puede usar en extensionesbasadas en trabajadores de servicio. Anteriormente, algunos de los métodos de esta API arrojaban una excepción en la invocación debido a dependencias internas en las funciones del DOM.

Chrome 102: Se permite wasm-unsafe-eval en el CSP de Manifest V3.

Publicado el

Las extensiones de Manifest V3 ahora pueden incluir wasm-unsafe-eval en sus declaraciones content_security_policy. Este cambio permite que las extensiones de Manifest V3 usen WebAssembly.

Chrome 102: Nueva API de storage.session

Publicado el

Las extensiones de Manifest V3 ahora pueden usar el almacenamiento en memoria storage.session .

Actualización de Documentos: Descubrimiento de artículos de Chrome Web Store

Publicado el

Descubrimiento en Chrome Web Store ofrece una descripción general de cómo los usuarios encuentran elementos en Chrome Web Store y cómo nuestros editores seleccionan elementos para destacar.

Chrome 101: Se mejoraron las condiciones de dominio de declarativeNetRequest

Publicado el

Se actualizaron las condiciones de la regla declarativeNetRequest para permitir que las extensiones segmenten mejor las solicitudes según los dominios "request" y "initiator" de la solicitud. Las propiedades de condición relevantes son initiatorDomains, excludedInitiatorDomains, requestDomains y excludedRequestDomains. Consulta también esta conversación de chromium-extensions.

Chrome 100: Se resolvió el problema con scripting.executeScript() en pestañas recién creadas.

Se solucionó un problema recurrente por el que fallaba la llamada a scripting.executeScript() en una pestaña o ventana recién creada.

Chrome 100: El puerto de mensajería nativo mantiene activo el servicio de trabajo

Publicado el

La conexión a un host de mensajería nativa con chrome.runtime.connectNative() en el trabajador de servicio de una extensión debería mantener el trabajador de servicio activo mientras el puerto esté abierto.

Chrome 100: omnibox.setDefaultSuggestion() admite promesas y devoluciones de llamada.

Publicado el

El método omnibox.setDefaultSuggestion() ahora muestra una promesa o acepta una devolución de llamada para permitir que los desarrolladores determinen cuándo se configuró correctamente la sugerencia.

Chrome 100: Compatibilidad con i18n.getMessage() en los service workers de extensiones

Publicado el

La API de chrome.i18n.getMessage() ahora es compatible con contextos de service worker de extensiones.

Chrome 99: match_origin_as_fallback en Canary

Publicado el

Las secuencias de comandos de contenido ahora pueden especificar la clave match_origin_as_fallback para insertarla en los marcos relacionados con un fotograma coincidente, incluidos los marcos con las URL about:, data:, blob: y filesystem:. Consulta la documentación de las secuencias de comandos de contenido para obtener más información.

Chrome 99: Se agregó compatibilidad con el service worker de extensiones para esquemas file: en Canary.

Publicado el

Las extensiones de Manifest V2 y Manifest V3 basadas en service workers ahora pueden usar la API de Fetch para solicitar URLs de esquema file:. El acceso a las URLs de esquema file: aún requiere que el usuario habilite "Permitir acceso a las URLs de archivo" para la extensión en la página chrome://extensions.

Chrome 99: Se prometió compatibilidad con las APIs de mensajería en Canary

Publicado el

Se agregó compatibilidad con promesas a tabs.sendMessage, runtime.sendMessage y runtime.sendNativeMessage para extensiones compiladas para Manifest V3.

Actualización de la documentación: Documentación de revisión de Chrome Web Store

Publicado el

Se agregó una nueva página de referencia que proporciona una descripción general del proceso de revisión de Chrome Web Store y explica cómo se controla la aplicación de la política del programa para desarrolladores.

Chrome 98: scripting.executeScript() y scripting.insertCSS() aceptan varios archivos.

Publicado el

Los métodos executeScript() y insertCSS() de la API de Scripting ahora aceptan varios archivos. Anteriormente, estos métodos requerían un array con una sola entrada de archivo.

Actualización de Documentos: Revisar las actualizaciones para solucionar problemas relacionados con incumplimientos

Publicado el

Se actualizó la página Solución de problemas relacionados con incumplimientos en Chrome Web Store para proporcionar a los desarrolladores una guía más detallada sobre los motivos comunes de rechazo.

Chrome 96: Se expandió la compatibilidad con promesas a 27 APIs más.

Publicado el

Esta versión contiene muchas más actualizaciones de promesas que cualquier versión anterior. Las actualizaciones incluyen las APIs de extensiones generales y específicas de ChromeOS. Expande las siguientes secciones para obtener más detalles.

APIs de Extensions

Varias APIs ahora admiten promesas en Manifest V3.

Además, las APIs que usan el prototipo ChromeSetting ahora también admiten promesas. Este cambio afecta a las siguientes APIs.

APIs de ChromeOS

Chrome 96: Secuencias de comandos de contenido dinámico

Publicado el

La API de chrome.scripting ahora admite registrar, actualizar, desregistrar y obtener una lista de secuencias de comandos de contenido durante el tiempo de ejecución. Antes, las secuencias de comandos de contenido solo se podían declarar de forma estática en el archivo manifest.json de una extensión o insertarse de manera programática en el entorno de ejecución con chrome.scripting.executeScript().

Actualización de Documentos: Cronograma de compatibilidad con Manifest V2

Publicado el

El cronograma de transición de Manifest V2 a V3 se anunció en esta entrada de blog y se publicó una página de cronograma más detallada.

Chrome 96: Permiso declarativeNetRequestWithHostAccess

Publicado el

El nuevo permiso declarativeNetRequestWithHostAccess permite que las extensiones usen la API de chrome.declarativeNetRequest en los sitios para los que la extensión tiene permisos de host. Esto también permite que las extensiones existentes de Manifest V2 que usan webRequest, webRequestBlocking y el permiso de host específico del sitio migren a la API de chrome.declarativeNetRequest sin que el usuario deba aprobar permisos nuevos.

Chrome 95: Inyección de secuencias de comandos directamente en las páginas

Publicado el

El método executeScript() de la API de chrome.scripting ahora puede insertar secuencias de comandos directamente en el mundo principal de una página. Anteriormente, las extensiones solo podían insertarse directamente en el mundo aislado de la extensión. Para obtener más información sobre los mundos aislados, consulta la documentación sobre secuencias de comandos de contenido.

Chrome 95: Se agregó compatibilidad con la API de Storage

Publicado el

Los métodos en la versión Manifest V3 de la API de chrome.storage ahora muestran promesas.

Actualización de la política: Aplicación forzosa de la verificación en 2 pasos

Publicado el

La entrada de blog de actualización de la política publicada el 29 de junio de 2021 se actualizó para corregir el cronograma de implementación de la verificación en dos pasos.

Chrome 94: Cambios en el conjunto de reglas estáticas de solicitudes netas declarativas

Publicado el

chrome.declarativeNetRequest ahora admite especificar hasta 50 conjuntos de reglas estáticos (MAX_NUMBER_OF_STATIC_RULESETS) y habilitar hasta 10 conjuntos de reglas (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) a la vez.

Chrome 93: Compatibilidad con el aislamiento de origen cruzado

Publicado el

Ahora las extensiones de Manifest V2 y Manifest V3 pueden habilitar el aislamiento de origen cruzado. Esta función limita qué recursos de origen cruzado pueden cargar las páginas de una extensión y permite el uso de funciones de bajo nivel de la plataforma web, como SharedArrayBuffer. A partir de Chrome 95, se requerirá la habilitación.

Actualización de políticas: Se actualizaron las políticas del programa para desarrolladores

Publicado el

Se actualizaron las Políticas del programa para desarrolladores de Chrome Web Store con aclaraciones sobre las tácticas de instalación engañosas, el spam y las políticas de contenido repetitivo. Esta actualización también incluye un nuevo requisito de verificación en dos pasos para publicar en Chrome Web Store. Lee la entrada de blog para obtener más información.

Entrada de blog: Acciones de extensión en Manifest V3

Publicado el

Las extensiones de Chrome tenían las APIs de chrome.browserAction y chrome.pageActions durante años, pero Manifest V3 reemplazó ambas por una API genérica de chrome.actions. En esta publicación, se explora la historia de estas APIs y lo que cambió en Manifest V3. Lee la entrada.

Entrada de blog: Presentamos chrome.scripting

Publicado el

La API de chrome.scripting es una nueva API de Manifest V3 que se centra en las secuencias de comandos. En esta publicación, profundizaremos en las motivaciones para este cambio y analizaremos con más detalle sus nuevas capacidades. Lee la entrada.

Chrome 92: Compatibilidad con service workers de módulos

Publicado el

Chrome ahora es compatible con los módulos de JavaScript en los service workers. Para especificar un módulo en tu manifiesto, haz lo siguiente:

"background": {
  "service_worker": "script.js",
  "type": "module"
}

Esto carga la secuencia de comandos del trabajador como un módulo de ES, lo que te permite usar la palabra clave import en la secuencia de comandos del trabajador para importar otros módulos.

Chrome 91: chrome.action.getUserSettings()

Publicado el

El nuevo método chrome.action.getUserSettings() permite que las extensiones determinen si el usuario fijó la extensión en la barra de herramientas principal.

Chrome 90: chrome.scripting.removeCSS()

Publicado el

El nuevo método chrome.scripting.removeCSS() permite que las extensiones quiten el CSS que se insertó anteriormente a través de chrome.scripting.insertCSS(). Reemplaza chrome.tabs.removeCSS().

Chrome 90: Devuelve promesas de scripting.executeScript().

Publicado el

chrome.scripting.executeScript() ahora admite mostrar promesas. Si el valor resultante de la ejecución de la secuencia de comandos es una promesa, Chrome esperará a que esta se establezca y mostrará su valor resultante.

Chrome 90: Los resultados de chrome.scripting.executeScript() incluyen frameId.

Publicado el

Los resultados que se muestran de chrome.scripting.executeScript() ahora incluyen frameId. La propiedad frameId indica el fotograma del que proviene el resultado, lo que permite que las extensiones asocien fácilmente los resultados con los fotogramas individuales cuando se insertan en varios fotogramas.

Chrome 89: Nueva API para administrar grupos de pestañas

Publicado el

La nueva API de chrome.tabGroups y las nuevas funciones de chrome.tabs permiten que las extensiones lean y manipulen grupos de pestañas. Requiere Manifest V3.

Chrome 89: Permisos personalizables para recursos accesibles a través de la Web

Publicado el

Las definiciones de recursos accesibles a través de la Web en el manifiesto V3 cambiaron para permitir que las extensiones restrinjan el acceso a los recursos según el origen del solicitante o el ID de la extensión.

Entrada de blog: Extension Manifest Converter

Publicado el

El equipo de Extensiones de Chrome lanzó el código abierto de "Extension Manifest Converter", una herramienta de Python que automatiza algunos de los aspectos mecánicos de la conversión de extensiones a Manifest V3. Consulta la entrada de blog del anuncio y obténla desde GitHub.

Chrome 88: Disponibilidad general de Manifest V3

Publicado el

Manifest V3 es una actualización importante de la plataforma de extensiones. Consulta Descripción general de Manifest V3 para obtener un resumen de las funciones nuevas y modificadas. Es posible que las extensiones sigan usando Manifest V2 por ahora, pero esto se eliminará gradualmente en un futuro cercano. Te recomendamos que uses Manifest V3 para las extensiones nuevas y que comiences a migrar las extensiones existentes a Manifest V3 lo antes posible.