Серво 0.2









Публикация на издание Серво 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(). Също така е подобрен външния вид и плейсхолдера на