Fecha de lanzamiento de la versión estable: 5 de mayo de 2026
A menos que se indique lo contrario, los siguientes cambios se aplican a la versión del canal estable de Chrome 148 para Android, ChromeOS, Linux, macOS y Windows.
CSS y IU
Consultas de contenedores solo con nombres de CSS
Se puede consultar un contenedor de consultas de CSS solo en función de su nombre de contenedor, y el contenedor no necesita ningún tipo de contenedor establecido:
#container {
container-name: --foo;
}
@container --foo {
input { background-color: green; }
}
<div id="container">
<div><input></div>
</div>
Anteriormente, @container requería un tipo de contenedor además del nombre.
Seguimiento de errores n.° 40287550 | Entrada de ChromeStatus.com | Especificación
At-rule: Detección de funciones de CSS
Esta función agrega una función at-rule() a @supports de CSS, que permite a los autores detectar la compatibilidad con las at-rules de CSS.
Seguimiento de errores n.° 40211832 | Entrada de ChromeStatus.com | Especificación
Forma de texto y renderización de glifos de Open Font Format avar2
La versión 2 de la tabla avar (Axis Variations) permite a los diseñadores de fuentes crear fuentes variables con un mejor control sobre la interpolación. Si bien la especificación de fuente variable original controla los ejes de forma independiente, avar2 permite que los ejes se influyan entre sí. Esto da como resultado fuentes que son más fáciles de usar para los autores de contenido y permite un almacenamiento compacto.
Avar2 funciona con los mismos conceptos familiares de variaciones de fuentes, pero aplica los valores delta variables a las especificaciones del eje de diseño. Además, te permite hacerlo en un rango de varios ejes.
Por ejemplo, permite a los diseñadores de fuentes crear "metadeslizadores" que controlan varios ejes de variación a la vez, lo que evita que el usuario ajuste y encuentre una esquina útil del espacio de diseño de la fuente.
Avar2 les brinda a los diseñadores de fuentes un mejor control sobre el espacio de variación utilizable de su fuente y les permite coordinar el ajuste de los ejes de diseño en varios ejes.
Si se definen las relaciones entre los ejes de forma matemática dentro de la tabla avar versión 2, las fuentes pueden lograr diseños complejos con menos fuentes maestras, lo que genera tamaños de archivo más pequeños, ya que la interpolación se almacena de manera más eficiente.
Seguimiento de errores n.° 40246300 | Entrada de ChromeStatus.com | Especificación
La palabra clave revert-rule
La palabra clave revert-rule revierte la cascada a la regla anterior, de manera similar a como revert-layer revierte la cascada a la capa anterior. Por ejemplo:
div { color: green; }
div { color: revert-rule; /* Effectively green */ }
Esto es especialmente útil en combinación con condicionales, ya que te permite eliminar la regla actual si no se cumple alguna condición:
div {
display: if(style(--layout: fancy): grid; else: revert-rule);
}
Seguimiento de errores n.° 393582263 | Entrada de ChromeStatus.com | Especificación
Carga diferida para elementos de audio y video
Agrega el atributo loading a los elementos <video> y <audio>, lo que permite a los
desarrolladores diferir la carga de recursos multimedia hasta que el elemento esté cerca de la
ventana gráfica con loading="lazy". Esto coincide con el comportamiento de carga diferida existente
para <img> y <iframe> elementos, lo que mejora el rendimiento de carga de la página y
reduce el uso de datos.
Seguimiento de errores n.° 469111735 | Entrada de ChromeStatus.com | Especificación
text-decoration-skip-ink: all
Agrega compatibilidad con el valor all para la propiedad text-decoration-skip-ink de CSS.
La propiedad text-decoration-skip-ink ya admite auto y none. El valor all extiende esto aplicando incondicionalmente el salto de tinta a todos los glifos, incluidos los caracteres CJK, mientras que auto deja los caracteres CJK sin saltar porque el salto de tinta tiende a producir resultados visuales no deseados para las secuencias de comandos ideográficas en las posiciones de subrayado típicas.
Con text-decoration-skip-ink: all, los desarrolladores que ajustaron text-underline-position o text-underline-offset para evitar conflictos con los glifos CJK también pueden habilitar explícitamente el salto de tinta para esos caracteres.
Seguimiento de errores n.° 40675832 | Entrada de ChromeStatus.com | Especificación
Configura correctamente dropEffect para los eventos dragEnter, dragLeave y dragOver
Las especificaciones de arrastrar y soltar requieren que el atributo dropEffect del objeto dataTransfer tenga ciertos valores predeterminados en dragEnter, dragOver y dragLeave. Los eventos de entrada y arrastre deben tener un dropEffect basado en el effectAllowed actual, y dragLeave siempre debe tener un dropEffect none. Actualmente, Chromium no cumple con estas reglas. Con el lanzamiento de esta función, Chromium comenzará a respetar la especificación y a asignar los valores correctos a este atributo para que los desarrolladores web puedan comenzar a confiar en él.
Seguimiento de errores n.° 434151262 | Entrada de ChromeStatus.com | Especificación
Supresión de eventos de puntero al inicio del arrastre
Según la especificación de HTML, cuando comienza un arrastre, el agente de usuario debe enviar los eventos adecuados a la fuente de arrastre para indicar que finalizó el flujo de eventos de puntero y que no debe esperar más eventos de este puntero.
Este código se implementó parcialmente para eventos de mouse y por completo para arrastres táctiles en Android. Con el trabajo en esta función, nuestro objetivo es satisfacer por completo este requisito de especificación en todas las demás plataformas. En la práctica, esto significa que, después de que comience un arrastre, la fuente de arrastre ahora recibirá los eventos pointercancel, pointerout y pointerleave para indicar que finalizó el flujo de eventos actual.
Seguimiento de errores n.° 452372355 | Entrada de ChromeStatus.com | Especificación
Funciones
Localización de manifiestos
Admite la localización de miembros del manifiesto para que las apps puedan adaptar sus nombres, descripciones, íconos y accesos directos al idioma y la región del usuario. Los desarrolladores proporcionan valores localizados en el manifiesto de la app web, y el navegador selecciona automáticamente los recursos adecuados según la configuración de idioma del usuario, lo que introduce la compatibilidad con idiomas en diferentes mercados.
Obtén más información en Compatibilidad con la localización de manifiestos de apps web.
Seguimiento de errores n.° 380491647 | Entrada de ChromeStatus.com | Especificación
Web en Android
API de Web Serial en Android
La API de Web Serial proporciona una interfaz para conectarse a dispositivos en serie, ya sea a través de un puerto en serie en el sistema del usuario o de dispositivos USB y Bluetooth extraíbles que emulan un puerto en serie. Ahora es compatible con Android.
Los usuarios, en especial en los sectores educativo, de aficionados y de la industria, conectan dispositivos periféricos a sus computadoras que requieren software personalizado para controlar. Por ejemplo, la robótica se usa a menudo para enseñar programación de computadoras y electrónica en las escuelas. Esto requiere software que pueda subir código a un robot o controlarlo de forma remota. En un entorno industrial o de aficionados, un equipo como un molino, un cortador láser o una impresora 3D se controla con un programa que se ejecuta en una computadora conectada. Estos dispositivos suelen controlarse con pequeños microcontroladores que usan una conexión en serie.
Para obtener más información, consulta la guía de la API de Web Serial en web.dev y la especificación de Web Serial.
Seguimiento de errores n.° 365514951 | Entrada de ChromeStatus.com
SharedWorker en Android
Durante mucho tiempo, SharedWorker estuvo inhabilitado en Android debido a inquietudes sobre su ciclo de vida impredecible. Las instancias de SharedWorker pueden finalizar de forma inesperada sin notificar a los usuarios ni a los desarrolladores web.
Sin embargo, un debate reciente en GitHub (consulta el debate de GitHub) sugiere que la naturaleza impredecible del ciclo de vida del proceso de SharedWorker podría no ser un problema tan importante como se pensaba anteriormente. En función de esto, se vuelve a habilitar SharedWorker en Android mientras se investiga este comportamiento para garantizar una experiencia estable y confiable.
Seguimiento de errores n.° 40290702 | Entrada de ChromeStatus.com | Especificación
APIs web
WebGPU: Función linear_indexing
Esta función agrega funcionalidad a la especificación de WebGPU después de su primer envío en un navegador.
Agrega dos valores integrados nuevos de sombreador de procesamiento para la calidad de vida del usuario. Estos se implementan para todos los backends (como polyfills de valores integrados existentes).
Seguimiento de errores n.° 482840564 | Entrada de ChromeStatus.com | Especificación
Modo de IU inmediata de Web Authentication
Un nuevo modo para navigator.credentials.get() que hace que se muestre la IU de acceso del navegador al usuario si hay una llave de acceso o una contraseña para el sitio que el navegador conoce de inmediato, o bien rechaza la promesa con NotAllowedError si no hay credenciales disponibles. Esto permite que el sitio evite mostrar una página de acceso si el navegador puede ofrecer una opción de credenciales de acceso que probablemente tengan éxito, al mismo tiempo que permite un flujo de página de acceso tradicional para los casos en los que no hay credenciales.
Seguimiento de errores n.° 408002783 | Entrada de ChromeStatus.com | Especificación
Obtén capacidades de Secure Payment Confirmation
Agrega un nuevo método estático a la solicitud de pago que permite a los desarrolladores web obtener las capacidades de la implementación del navegador de Secure Payment Confirmation.
Esto ayuda a los desarrolladores web a saber qué capacidades están disponibles para Secure Payment Confirmation para que puedan decidir si desean usar Secure Payment Confirmation con esas capacidades.
Seguimiento de errores n.° 484043990 | Entrada de ChromeStatus.com | Especificación
Trabajadores compartidos con vida útil extendida
Esta actualización agrega una nueva opción, extendedLifetime: true, al constructor SharedWorker. Esta nueva opción solicita que el trabajador compartido se mantenga activo incluso después de que se hayan descargado todos los clientes actuales. Esto permite que las páginas realicen trabajo asíncrono que requiere JavaScript después de que se descarga una página, sin necesidad de depender de un service worker.
Seguimiento de errores n.° 400473072 | Entrada de ChromeStatus.com | Especificación
API de Prompt
La API de Prompt les brinda a los desarrolladores web acceso directo a un modelo de lenguaje de IA integrado en el dispositivo que proporciona el navegador. El diseño de la API ofrece un control detallado, alineado con las formas de la API de Cloud, para mejorar progresivamente los sitios con interacciones de modelos adaptadas a casos de uso individualizados. Esto complementa las APIs de modelos de lenguaje basados en tareas, por ejemplo, la API de Summarizer, así como una variedad de APIs y frameworks para la inferencia generalizada integrado en el dispositivo con modelos de AA proporcionados por el desarrollador.
La implementación inicial admite entradas de texto, imagen y audio. Además, las restricciones de respuesta garantizan que el texto generado cumpla con los formatos predefinidos de expresión regular y esquema JSON.
Esto admite una variedad de casos de uso, desde generar leyendas de imágenes y realizar búsquedas visuales hasta transcribir audio, clasificar eventos de sonido, generar texto siguiendo instrucciones específicas y extraer información o estadísticas del material de referencia multimodal.
Seguimiento de errores n.° 417526788 | Entrada de ChromeStatus.com | Especificación
Herramientas de redes y conectividad
Reglas de ContextJ de IDNA
IDNA es el mecanismo para caracteres que no son ASCII en nombres de dominio. Codifica una URL como http://네이버.한국/ como http://xn--950bt9s8xi.xn--3e0b707e/ (un redireccionamiento a naver.com).
La especificación de URL establece la marca CheckJoiners, que habilita las reglas ContextJ en IDNA2008. Esto no permite ZWNJ (U+200C ZERO WIDTH NON-JOINER) ni ZWJ (U+200D ZERO WIDTH JOINER) en la mayoría de los lugares de las URLs. La implementación pasa la opción UIDNA_CHECK_CONTEXTJ a ICU, donde se implementa esta regla.
Seguimiento de errores n.° 40765949 | Entrada de ChromeStatus.com | Especificación
Reutiliza imágenes no almacenadas en la reasignación de la misma fuente
Permite la reutilización de imágenes disponibles en el mismo documento para omitir la recarga de Cache-Control: no-store
reload cuando se reasigna el mismo valor de fuente a un <img> elemento. Anteriormente, Blink volvía a recuperar la imagen, aunque ya estaba decodificada y disponible en el documento. Esto se alinea con el comportamiento existente de Gecko y WebKit.
Seguimiento de errores n.° 486562295 | Entrada de ChromeStatus.com | Especificación
Rendimiento
ContentType en Resource Timing
Agrega el campo contentType a PerformanceResourceTiming para contener una cadena correspondiente al encabezado HTTP Content-Type del recurso recuperado que muestra el servidor.
Seguimiento de errores n.° 1366706 | Entrada de ChromeStatus.com | Especificación
WebRTC Datachannel: Siempre negocia canales de datos
Implementa una extensión de WebRTC alwaysNegotiateDataChannels que define una forma para que la aplicación negocie canales de datos en la oferta de SDP antes de crear un canal de datos. Esto también negocia la sección m= de datos antes de cualquier sección m de audio o video y la usa como la "sección m= etiquetada por el oferente" para BUNDLE.
Esto significa lo siguiente:
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();
creará una oferta con una línea m de aplicación en el SDP y que:
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();
creará una oferta que negocie una línea m de aplicación seguida de una línea m de audio en el SDP.
Seguimiento de errores n.° 433898678 | Entrada de ChromeStatus.com | Especificación
Nuevas pruebas de origen
Secuencias de comandos de módulos CSS declarativos
Las secuencias de comandos de módulos CSS declarativos son una extensión de las secuencias de comandos de módulos CSS existentes basadas en secuencias de comandos. Permiten que los desarrolladores compartan hojas de estilo declarativas con raíces secundarias, incluidas las raíces secundarias declarativas. Los desarrolladores pueden definir
módulos de estilo intercalados con <style type="module" specifier="foo"> y aplicar un
módulo declarativo a un DOM secundario declarativo haciendo referencia al especificador o a una
URL, como <template shadowrootmode="open"
shadowrootadoptedstylesheets="foo">.
Prueba de origen | Seguimiento de errores n.° 448174611 | Entrada de ChromeStatus.com | Especificación
API de Container Timing
La
API de Container Timing
permite supervisar cuándo se muestran en pantalla las secciones anotadas del DOM
y cuándo finalizó su pintura inicial. Un desarrollador podrá marcar subsecciones del DOM con el atributo containertiming (similar a elementtiming para la API de Element Timing) y recibir entradas de rendimiento cuando se pinte esa sección por primera vez. Esta API permitirá a los desarrolladores medir el tiempo de varios componentes en sus páginas.
Prueba de origen | Seguimiento de errores n.° 382422286 | Entrada de ChromeStatus.com | Especificación
Elemento de instalación HTML de la app web
Permite que un sitio web solicite de forma declarativa a los usuarios que instalen una app web. El elemento acepta de forma opcional dos atributos que permiten la instalación de contenido desde un origen diferente.
Prueba de origen | Seguimiento de errores n.° 454827186 | Entrada de ChromeStatus.com | Especificación
Duración del estilo de Long Animation Frames
Agrega información styleDuration y forcedStyleDuration a la API de Long Animation Frame, lo que permite a los desarrolladores distinguir los tiempos de estilo y diseño.
Prueba de origen | Seguimiento de errores n.° 476826067 | Entrada de ChromeStatus.com | Especificación
HTML en canvas
HTML en canvas permite personalizar la renderización de HTML con canvas con tres primitivas nuevas: un atributo para habilitar elementos de canvas (layoutsubtree), métodos para dibujar elementos secundarios (2D: drawElementImage, webgl: texElementImage2D, webgpu: copyElementImageToTexture) y un evento de pintura que se activa para controlar las actualizaciones.
Prueba de origen | Seguimiento de errores n.° 500967896 | Entrada de ChromeStatus.com | Especificación
Listas de entidades permitidas de conexión
Las listas de entidades permitidas de conexión son una función diseñada para proporcionar un control explícito sobre los extremos externos restringiendo las conexiones iniciadas con la API de Fetch o con otras APIs de la plataforma web desde un documento o un trabajador.
La implementación propuesta incluye la distribución de una lista de extremos autorizados desde el servidor a través de un encabezado de respuesta HTTP. Antes de que el agente de usuario establezca cualquier conexión en nombre de una página, el agente evaluará el destino en función de esta lista de entidades permitidas. Se permitirán las conexiones a extremos verificados, mientras que se bloquearán las que no coincidan con las entradas de la lista.
Prueba de origen | Seguimiento de errores n.° 447954811 | Entrada de ChromeStatus.com | Especificación
Parámetros de muestreo de la API de Prompt
Agrega parámetros de muestreo a la API de Prompt. Estos controlan cómo se muestrean los tokens del modelo, lo que les brinda a los desarrolladores control sobre la "creatividad" o la "aleatoriedad" del resultado. Además, agrega atributos a la instancia LanguageModel para leer los valores establecidos, así como una función LanguageModel estática para obtener los valores predeterminados y máximos de estos parámetros.
La primera implementación agrega parámetros temperature y topK.
Prueba de origen | Seguimiento de errores n.° 496663356 | Entrada de ChromeStatus.com | Especificación
Analiza las instrucciones de procesamiento en HTML
Las instrucciones de procesamiento (sintaxis: <?target data>) son una construcción DOM existente,
expuesta en XML, que permite objetos de nodo que no son elementos, pero que pueden tener algún
significado semántico para el procesamiento de un documento.
Por ejemplo, se pueden usar para denotar rangos para la transmisión o el resaltado sin requerir elementos DOM nuevos y cambiar la estructura DOM en lo que respecta a CSS, o como directivas para el analizador HTML sobre cómo almacenar en búfer y transmitir.
Seguimiento de errores n.° 481087638 | Entrada de ChromeStatus.com
OpaqueRange
OpaqueRange representa un intervalo de texto en vivo dentro del valor de un control de formulario, como un <textarea> o un <input> basado en texto, para que los desarrolladores puedan trabajar con texto de valor usando APIs similares a rangos.
Permite operaciones como getBoundingClientRect(), getClientRects() y la integración con la API de CSS Custom Highlight para la IU, como sugerencias intercaladas, resaltados y ventanas emergentes ancladas. Conserva el encapsulamiento exponiendo solo los desplazamientos de valor mientras muestra null para startContainer y endContainer, por lo que no se exponen los extremos DOM ni la estructura interna.
Prueba de origen | Seguimiento de errores n.° 421421332 | Entrada de ChromeStatus.com