Кілька днів тому Chrome надіслав усім користувачам стабільної гілки браузера зміну яка за замовчуванням активує новий код для організації виводу в системах з сервером X, заснований на використанні шар під назвою «озон» що абстрагується від взаємодії з графічною підсистемою.
Використання озону дозволяє надавати підтримку для X11 та Wayland в одній збірці Chromeбез прив’язки до певної графічної підсистеми.
Про озон
Озон - це шар абстракції платформи під віконною системою Aura який використовується для введення та низькорівневої графіки, тому абстракція підтримує основні системи, починаючи від вбудованих цілей SoC і закінчуючи новими альтернативними віконними системами до X11 у Linux, таких як Wayland або Mir для відображення Aura Chromium, забезпечуючи реалізацію інтерфейсу платформи.
Оскільки бажано, щоб Chrome використовувався у найрізноманітніших проектах, проводиться робота щодо полегшення переходу на нові платформи.
Для підтримки цієї мети Озон дотримується таких принципів:
- Інтерфейси, а не ifdefs: Різниці між платформами усуваються шляхом виклику об'єкта, наданого платформою, через інтерфейс замість використання умовної компіляції. Внутрішні компоненти платформи залишаються інкапсульованими, а загальнодоступний інтерфейс діє як брандмауер між нейтральними верхніми шарами платформи (аура, мерехтіння, вміст тощо) та нижніми конкретними шарами платформи.
- Гнучкі інтерфейси: Інтерфейси платформи повинні інкапсулювати саме те, що потрібно Chrome від платформи, з мінімальними обмеженнями щодо реалізації платформи, а також мінімальними обмеженнями щодо використання верхніх шарів.
- Час виконання для всіх платформ: щоб уникнути умовної компіляції у верхніх шарах, це дозволяє нам будувати кілька платформ в одній двійковій системі та пов'язувати їх під час виконання.
- Просте розгалуження - багато портів починаються як форки, і багато з них згодом об’єднують свій код у потоці, інші матимуть довгий термін служби поза деревом. Це нормально, і ми повинні сприяти цьому процесу, щоб заохотити вилки.
Ось чому незалежність особливостей побудови графічного інтерфейсу на різних системах працює в Chrome він реалізований за допомогою власного міжплатформенного стека графіки Aura. Aura діє як віконний менеджер (оболонка Aura), працює через власний композитний сервер і використовує доступні інструменти графічного процесора для прискорення графічних операцій.
Для створення елементів інтерфейсу, використовується графічний інструментарій інтерфейсу Aura, який надає власний набір віджетів, діалогових вікон, елементів керування та обробників подій. З базових можливостей стеку графіки (X11, Wayland, Cocoa або Windows) використовується лише вихід у верхній частині кореневого вікна.
Усі конкретні операції з графічним стеком Linux зводяться до одного шару легкозамінний абстрактний озон. Поки що підтримка Ozone надається у вигляді опції, а за замовчуванням - це старий бекенд, закодований у X11.
Робота над перекладом версій X11 для використання озонового шару триває з 2020 року, а для користувачів поступове включення бекенда Ozone / X11 за замовчуванням розпочалося з випуском Chrome 92.
Тобто кілька днів тому новий бекенд був активований для всіх користувачів Chrome Linux. На додаток до X11 та Wayland ("–ozone-platform = wayland" та "–ozone-platform = x11"), Ozone також розробляє платформи для виведення через графічні драйвери KMS / DRM, графічний вивід ASCII за допомогою бібліотеки libcaca, рендеринг у PNG зображення (без голови) та потокове передавання через пристрої Chromecast.
Нарешті, згадується, що вищезазначений бекенд планується, який підтримує роботу лише через X11, буде припинено та врешті -решт буде видалено з кодової бази (Після того, як новий бекенд Ozone / X11 досяг паритету у функціональності та увімкнув його за замовчуванням, не було сенсу зберігати інший бекенд X11 у браузері.)
Фуенте: https://chromium.googlesource.com