Публикация на издание Серво 0.2.0 — новата версия на експерименталния браузърен движок, написан на Rust. Релизът излезе 31 май 2026 година и включва промените, направени през април: общо разработчиците са отчели 534 комита, което стана нов месечен рекорд на проекта. Серво се развива като независим проект под егидата на Linux Foundation Europe и е насочен към създаването на лек вграждан програмен браузърен движок за приложения, мобилни платформи и експериментални браузърни обвивки.
Основни промени
Преработен е интерфейсът на servoshell за Android.
В Android версията на демонстрационната обвивка на Серво е актуализиран браузърният интерфейс и е добавен нов екран с история. APK стана приблизително с 30% по-малък, също така е поправена грешката с черния екран при затваряне на настройките или при връщане от друго приложение. За OpenHarmony вече може да се затварят раздели.Подобрен е анализът на китайски, японски и корейски текст.
В движка за подредба е коригирано обработването на пренасяне на редове за CJK езици, а в интерфейса на servoshell за Windows, Linux и FreeBSD са включени CJK шрифтове. Това е важно за реалното визуализиране на сайтове на езици, където правилата за пренасяне и подбиране на шрифтове се различават от латиницата.Добавен е интерактивен преглед на JSON.
Ако отворите JSON файл като основен документ, Серво вече го показва чрез интерактивен pretty-printer. Това прави движка по-удобен не само за обикновен преглед на страници, но и за разработчици, които трябва да отварят API отговори и структурирани данни директно в браузъра.Разширена е поддръжката на Web Platform.
В Серво са добавени <select multiple>, <template shadowrootslotassignment>, възпроизвеждане на <video> на OpenHarmony, поддръжка на minimum-scale и maximum-scale в <meta name=viewport>, CSS функция color-mix() с произволен брой цветове, tab-size, text-align: match-parent, създаване на Worker от blob URL, WebGL контекст за OffscreenCanvas, както и свойството detail на PerformanceMark и PerformanceMeasure.Добавени са нови DOM API.
Реализирани са събития selectionchange за <input> и <textarea>, експериментален StorageManager, activeElement за Document и ShadowRoot, crypto.subtle.supports(), свойства cellPadding, cellSpacing и align за HTMLTableElement, relatedTarget за събития focus и blur, а също и transferFromImageBitmap() за ImageBitmapRenderingContext. Разработчиците отбелязват, че Серво стана първият голям браузърен движок с поддръжка на crypto.subtle.supports().Подобрена навигацията с клавиатура и фокуса на елементите.
Tab сега може да преминава през граници , а Ctrl+Backspace или Option+Backspace на macOS изтрива цялата дума в полетата за въвеждане. Също така са поправени проблемите с фокуса и IME в настолната версия servoshell.Разширени са инструментите за разработчици.
В комбинация с Firefox DevTools, разделите Inspector, Console и Debugger са подобрени. Панелът Rules сега показва декларации от @layer, в Console и Debugger има повече информация за функции, масиви, обекти и други стойности, появи се инспекция на локални и глобални променливи чрез Scopes, отстраняване на грешки в worker скриптове и начална поддръжка на Style Editor.Укрепена е сигурността.
CryptoKey сега изтрива буферите с ключов материал след употреба. Поправени са проблеми с достъпа до DOM API между документи с различни origin, грешки при изолация на localStorage и sessionStorage в sandboxed iframe и iframe srcdoc, неправилна достъпност на IndexedDB в sandboxed iframe и работник от data: URL, възможност за измяна на cookie между някои IP-origin, четене на памет извън буфера в texImage3D() за WebGL2, както и неопределено поведение в обработчика на сигнали servoshell.Работата по IndexedDB и хранилището е напреднала.
IndexedDB е включен в експериментален режим servoshell и е преведен на новата система „client storage“, която трябва да предостави на Servo единен формат за съхранение на диска и общо управление на квотите за уеб функции, съхраняващи данни. Също така са подобрени заявките по ключови диапазони, обработка на транзакции, ключове, стойности и изключения.API-то за вграждане на Servo е обновено.
Тъй като това е второто месечно издание на библиотеката Servo, разработчиците уточниха политиката за съвместимост: версия 0.2.0 се смята за нарушаваща актуализация спрямо 0.1.x. Добавено е зареждане на URL с потребителски HTTP заглавия чрез WebView::load_request, асинхронно получаване на cookie, изчистване само на session cookies без изтриване на постоянни cookie, предаване на destination и referrer_url при прихващане на заявки, както и режим на временно хранилище за изолация на данни от сесия.Проблемите с показването и поведението на страниците са поправени.
Разработчиците споменават поправки за console.log, CSS анимации, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, абсолютни позиции вътре в grid, word-spacing, removeChild() на Document и URL.revokeObjectURL(). Също така е подобрен външния вид и плейсхолдера наПовишена е производителността и намалено е потреблението на памет.
Коригирани са сериозни неефективности: ускорено зареждането на спецификацията ECMAScript чрез преработка на обработката на атрибутите id и name, първата TLS сесия стана по-бърза с 30–60 мс, намален е IPC трафика между нишките, намалено е потреблението на памет от DOM възлите Attr, Text и CharacterData с 16 байта на възел, отстранена е паметна утечка при изтриване на
В крайна сметка Servo 0.2 – това е следваща стъпка към превръщането на проекта в подходящ за вграждане web engine: подобрява се мобилната обвивка, нараства съвместимостта с модерните web стандарти, поправят се проблеми с безопасността и постепенно се стабилизира API за разработчици на приложения.
Източник: linux.org.ru




