Publicada la versión Servo 0.2.0 — la nueva versión del motor de navegador experimental, escrito en Rust. La versión fue lanzada el 31 de mayo de 2026 e incluye los cambios realizados en abril: en total, los desarrolladores contaron 534 commits, lo que se convirtió en un nuevo récord mensual para el proyecto. Servo se desarrolla como un proyecto independiente bajo la égida de la Linux Foundation Europe y está orientado a la creación de un motor web ligero y embebible para aplicaciones, plataformas móviles y entornos de navegador experimentales.
Principales cambios
Se ha rediseñado la interfaz de servoshell para Android.
En la versión para Android de la interfaz de demo de Servo, se actualizó la interfaz del navegador y se añadió una nueva pantalla de historial. El APK se redujo aproximadamente en un 30% y se resolvió un error que causaba una pantalla negra al cerrar la configuración o al regresar de otra aplicación. En OpenHarmony ahora se pueden cerrar las pestañas.Se mejoró el soporte para texto en chino, japonés y coreano.
En el motor de renderizado se corrigió el manejo de saltos de línea para idiomas CJK y en la interfaz de servoshell en Windows, Linux y FreeBSD se incluyeron fuentes CJK. Esto es importante para mostrar correctamente los sitios en idiomas donde las reglas de salto de línea y selección de fuentes son diferentes de las del alfabeto latino.Se añadió vista previa interactiva de JSON.
Si se abre un archivo JSON como documento principal, Servo ahora lo muestra a través de un pretty-printer interactivo. Esto hace que el motor sea más útil no solo para la visualización de páginas normales, sino también para los desarrolladores que necesitan abrir respuestas de API y datos estructurados directamente en el navegador.Se amplió el soporte de la Web Platform.
En Servo se añadieron <select multiple>, <template shadowrootslotassignment>, reproducción de <video> en OpenHarmony, soporte para minimum-scale y maximum-scale en <meta name=viewport>, la función CSS color-mix() con un número arbitrario de colores, tab-size, text-align: match-parent, creación de Worker a partir de blob URL, contexto WebGL para OffscreenCanvas, además de la propiedad detail en PerformanceMark y PerformanceMeasure.Se añadieron nuevas API de DOM.
Se implementaron eventos selectionchange para <input> y <textarea>, StorageManager experimental, activeElement para Document y ShadowRoot, crypto.subtle.supports(), las propiedades cellPadding, cellSpacing y align en HTMLTableElement, relatedTarget para eventos focus y blur, así como transferFromImageBitmap() para ImageBitmapRenderingContext. Los desarrolladores destacan por separado que Servo se ha convertido en el primer motor de navegador importante con soporte para crypto.subtle.supports().Se mejoró la navegación con teclado y el manejo del foco.
La tecla Tab ahora puede navegar a través de los bordes del , y Ctrl+Backspace — o Option+Backspace en macOS — elimina la palabra completa en los campos de entrada. También se han corregido los errores de enfoque e IME en la versión de escritorio de servoshell.Se han ampliado las herramientas para desarrolladores.
En conjunto con Firefox DevTools, se han mejorado las pestañas Inspector, Console y Debugger. El panel Rules ahora muestra declaraciones de @layer, y Console y Debugger contienen más información sobre funciones, matrices, objetos y otros valores, además de permitir la inspección de variables locales y globales a través de Scopes, depuración de scripts worker y soporte inicial para el Style Editor.Se ha reforzado la seguridad.
CryptoKey ahora borra los búferes con material clave después de su uso. Se han solucionado problemas de acceso al DOM API entre documentos de diferentes orígenes, errores de aislamiento de localStorage y sessionStorage en sandboxed y srcdoc, accesibilidad incorrecta de IndexedDB en sandboxed y worker desde URL data:, posibilidad de desbordamiento de cookies entre ciertos orígenes IP, lectura de memoria fuera del búfer en texImage3D() para WebGL2, así como comportamiento indefinido en el manejador de señales de servoshell.Se ha avanzado en el trabajo con IndexedDB y almacenamiento.
IndexedDB se ha habilitado en modo experimental en servoshell y se ha trasladado a un nuevo sistema de 'client storage', que debería proporcionar a Servo un formato unificado de almacenamiento en disco y un control general sobre las cuotas para las funciones web que almacenan datos. También se han mejorado las solicitudes por rangos clave, el manejo de transacciones, claves, valores y excepciones.Se ha actualizado la API para incorporar Servo.
Dado que esta es la segunda versión mensual de la biblioteca Servo, los desarrolladores han aclarado la política de compatibilidad: la versión 0.2.0 se considera una actualización que rompe la compatibilidad con respecto a 0.1.x. Se ha agregado la carga de URL con encabezados HTTP personalizados a través de WebView::load_request, recepción asíncrona de cookies, eliminación de solo cookies de sesión sin eliminar cookies permanentes, pasando destination y referrer_url al interceptar solicitudes, así como un modo de almacenamiento temporal para aislar datos de sesión.Se han corregido errores de visualización y comportamiento de las páginas.
Los desarrolladores mencionan correcciones para console.log, animaciones CSS, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, posicionamiento absoluto dentro de grid, word-spacing, removeChild() en Document y URL.revokeObjectURL(). También se ha mejorado la apariencia del y el placeholder enSe ha aumentado el rendimiento y reducido el consumo de memoria.
Se han corregido grandes ineficiencias: se ha acelerado la carga de la especificación ECMAScript gracias a la reestructuración del manejo de los atributos id y name, la primera sesión TLS es ahora más rápida entre 30 y 60 ms, se ha reducido el tráfico IPC entre hilos, se ha disminuido el consumo de memoria de los nodos DOM Attr, Text y CharacterData en 16 bytes por nodo, se ha corregido una fuga de memoria al eliminar <video controls> y <audio controls>. La página about:memory ahora refleja de manera más precisa las asignaciones de memoria, incluyendo las asignaciones de libc en Linux.
En resumen, Servo 0.2 es otro paso hacia la transformación del proyecto en un motor web listo para la integración: se mejora la interfaz móvil, aumenta la compatibilidad con los estándares web modernos, se corrigen errores de seguridad y se estabiliza gradualmente la API para desarrolladores de aplicaciones.
Fuente: linux.org.ru




