Se ha publicado la versión 0.1.0 del motor de navegador Servo y su navegador de demostración ServoShell, desarrollados en el lenguaje Rust. Las versiones listas están disponibles para Linux, Android, macOS y Windows. Además de versiones independientes, Servo ahora también se proporciona como un paquete crate, que permite utilizar el motor como una biblioteca.
Servo 0.1.0 es la primera versión que cuenta con un ciclo de soporte prolongado (LTS). Se publicarán nuevas ramas LTS cada 6 meses basadas en una versión intermedia. El soporte para las versiones LTS durará 9 meses (se dan 3 meses para migrar a la nueva rama LTS). A diferencia de las versiones regulares, la rama LTS se distingue por la publicación de actualizaciones que corrigen vulnerabilidades en la biblioteca servo, el motor JavaScript y sus dependencias. Se espera que la rama LTS sea útil para los desarrolladores que integran Servo en sus proyectos y no desean actualizar mensualmente a la próxima versión intermedia, que puede incluir cambios en la API.
La versión Servo 0.1.0 LTS se basa en una versión intermedia 0.0.6 que se formó hace unos días, en la que se implementaron las siguientes nuevas características:
- Se han implementado los atributos «command» y «commandfor» en el elemento HTML «button», que se pueden utilizar en botones en lugar de los atributos «popovertargetaction» y «popovertarget» para la configuración declarativa de la interacción con el menú que se activa al hacer clic en el botón.
- Se agregó el selector CSS «:modal», que permite identificar que un diálogo creado a través del elemento
- Se ha implementado la regla CSS @property, que permite registrar propiedades CSS personalizadas.
- Se han añadido las propiedades CSS «alignment-baseline» y «baseline-shift» para la alineación vertical del texto.
- Se ha añadido el soporte para el encabezado «Content-Security-Policy: base-uri», que restringe las URL que se pueden utilizar en el elemento HTML .
- Se ha añadido soporte parcial para la carga diferida de bloques iframe, donde el contenido que está fuera del área visible no se carga hasta que el usuario desplaza la página hasta el lugar justo antes del elemento. La activación de la carga diferida se realiza a través del atributo «loading=lazy» en la etiqueta iframe ().
- Se ha añadido soporte parcial para la propiedad CSS «transform-style: preserve-3d» para posicionar elementos secundarios en un espacio 3D.
- Se han implementado los eventos pointermove, pointerdown, pointerup y pointercancel.
- Se ha habilitado la rotación de imágenes basada en los metadatos EXIF.
- Se ha asegurado el uso de la variable de entorno LANG para seleccionar el idioma predeterminado para el encabezado "Accept-Language" y la propiedad navigator.language.
- Se han añadido las API Pointer Events y UserActivation.
- Se han implementado los métodos import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() e index().
- En el navegador de demostración servoshell, se han implementado páginas para cambiar la configuración en servo:preferences (configurador GUI) y servo:config (ajuste de parámetros individuales al estilo about:config). Se añadió soporte para recargar la página al presionar F5.

- En las herramientas para desarrolladores web en el modo de inspección, se ha añadido soporte para la edición de atributos DOM, en la consola web se proporciona una vista previa de los objetos enviados a través de console.log(), y en el depurador se ha añadido la capacidad de pausar y reanudar la ejecución de scripts.
- Se ha ampliado la API para integrar el motor de navegador en aplicaciones.
El motor Servo fue originalmente desarrollado por Mozilla, pero luego pasó a estar bajo el patrocinio de la Linux Foundation. Servo se distingue por su soporte de renderizado web multiproceso, paralelización de operaciones con el DOM (Modelo de Objetos del Documento) y el uso de mecanismos de programación segura proporcionados por el lenguaje Rust. Servo fue diseñado desde el principio con soporte para dividir el código del DOM y el renderizado en tareas más pequeñas que pueden ejecutarse en paralelo y utilizar de manera más eficiente los recursos de las CPU multinúcleo. Ya se han integrado algunas partes de Servo en Firefox, como el motor CSS multiproceso y el sistema de renderizado WebRender.
Fuente: opennet.ru

