Релиз браузерного движка WebKitGTK 2.42.0 и обновление проекта Servo

Представлен выпуск новой стабильной ветки WebKitGTK 2.42.0, порта браузерного движка WebKit для платформы GTK. WebKitGTK позволяет использовать все возможности WebKit через GNOME-ориентированный программный интерфейс на основе GObject и может применяться для интеграции средств обработки web-контента в любые приложения, от использования в специализированных HTML/CSS-парсерах, до создания полнофункциональных web-браузеров. Из известных проектов, использующих WebKitGTK, можно отметить штатный браузер GNOME (Epiphany). Ранее WebKitGTK применялся в браузере Midori, но после перехода проекта в руки Astian Foundation старый вариант Midori на WebKitGTK был заброшен и путём создания ответвления от браузера Wexond создан принципиально другой продукт с тем же названием Midori, но на основе платформы Electron и React.

Ключевые изменения:

  • Реализован новый механизм рендеринга, использующий разделяемые буферы DMA-BUF.
  • Добавлен новый запрос полномочий, применяемый для предоставления доступа к вставке через DOM (DOM paste).
  • Добавлен API для настройки экспериментальных возможностей во время работы.
  • Добавлен API для установки объёма хранилища, используемого для хранения данных.
  • Реализация WebGL избавлена от привязке к GBM.

Дополнительно можно отметить публикацию отчёта о последних достижениях браузерного движка Servo, написанного на языке Rust и ориентированного на выполнение рендеринга web-страниц в многопоточном режиме, распараллеливание операций с DOM (Document Object Model) и достижение более высокого уровня безопасности кодовой базы. Servo позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.

В свежих ночных сборках Servo реализованы следующие возможности:

  • Включён по умолчанию интерфейс пользователя minibrowser (рабочий пример браузера на базе движка Servo), оснащённый адресной строкой.

  • Обновлена экспериментальная реализация API WebGPU, включаемая через параметр “–pref dom.webgpu.enabled”. Новая версия успешно проходит более 5000 тестов, оценивающих совместимость со спецификацией.
  • Код, обеспечивающий работу HTTPS, переведён с OpenSSL на пакет rustls.
  • Добавлена возможность сборки для архитектуры ARM32, помимо ARM64.
  • Возвращена поддержка плавающих элементов CSS и свойства “white-space: nowrap”.
  • Улучшена страница, показываемая при аварийном завершении.

Release. Ссылка here.