the chromium/wayland project - automotive grade linux · the chromium/wayland project maksim sisov,...
TRANSCRIPT
![Page 2: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/2.jpg)
Agenda
● Goals & Motivation
● Background
● Developments
● About the project
● Next steps
![Page 3: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/3.jpg)
Goals&
Motivation
![Page 4: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/4.jpg)
Goal
● Be able to run Chromium natively on Wayland-based systems.− No XWayland,− No intermediate layers.
![Page 5: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/5.jpg)
Motivation
● Wayland is a mature solution.● Native Wayland support removes additional
layer of abstraction compared to XWayland.− Less resource usage, less bugs.
● Demand from different industries.− Automotive, Mobile, Desktop
![Page 6: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/6.jpg)
Background
![Page 7: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/7.jpg)
Background - Ozone/Wayland
● Started by Intel / 01.org in 2014.● Was based on initial Ozone project underneath Aura
toolkit.● Supported DRM/GBM for ChromeOS and Wayland
for Linux (off trunk).● Did not comply with Google’s vision on desktop
integration.
![Page 8: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/8.jpg)
Background - Ozone/Wayland
Browser process
desktop integration
Renderer process
x11 win
Browser process
desktop integration
Renderer process
GPU process
ozone platformwayland connection
IPC (old API)
x11 win
ozone/wayland
GPU process
Desktop integration Desktop integration (01.org)
![Page 9: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/9.jpg)
Background - Ozone/Wayland
● Good community adoption.● Project entered in “maintenance mode”.
○ December/2015.○ Chromium m49.
■ Today’s ToT is m67.
![Page 10: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/10.jpg)
● In the meanwhile, Ozone layer in ToT received two new backends:○ x11○ wayland
Background - Cr Upstream (1/)
● The original “desktop integration” approach taken in Ozone/Wayland did not comply with the way future Linux desktop Chrome is foreseen.
![Page 11: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/11.jpg)
Background - Cr Upstream (2/)● Ozone project− Abstraction layer for the construction of accelerated
surfaces underlying the UI Service (aka Mus), as well as input devices assignment and event handling.
− Backends:■ ChromeOS
● DRM / GBM● x11● Wayland
■ Linux
![Page 12: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/12.jpg)
Background - Desktop integration
Browser process
Renderer process
UI Service
desktop integration
ozone / wayland(connection)
IPC (Mojo API)
Mus Linux desktop integration
Gpu service (thread)
Browser process
desktop integration
Renderer process
GPU process
ozone platformwayland connection
IPC (old API)
Linux desktop integration (01.org)
x11 win
ozone/wayland
ozone / x11
Window Server
x11 win
aura/mus
Browser process
Gpu service (gpu process)
![Page 13: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/13.jpg)
New developments
Phase 1 - The bring up
![Page 14: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/14.jpg)
Phase 1 - The bring up● Sept-Oct/16
○ Igalia brought up of Ozone’s Wayland backend in ToT.○ Experimented with “Ozone != ChromeOS”.○ Documentation○ Buildbots
![Page 15: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/15.jpg)
Phase 1 - CrOS
● Internal-window mode○ CrOS has a Window Manager (WM) and a
ScreenManager (SM).○ Chrome and other app windows in the
system■ end up sharing a single display.■ are embedded within a single top-level acceleratedWidget.
![Page 16: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/16.jpg)
Phase 1 - Desktop Chrome
● External-window mode○ Desktop Chrome has no WM.
■ One acceleratedWidget per Chrome window.■ User manipulates acceleratedWidgets via the
host OS window.● maximize, minimize, resizing, dragging, fullscreen.
○ Desktop Chrome has no SM.
![Page 17: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/17.jpg)
New developments
Phase 2 - Chrome / Mus
![Page 18: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/18.jpg)
Mus’ External Window Mode (1/)
● Extended Mus and Ozone to support ‘External Window’ mode:○ Native acceleratedWidget’s for each top-level
window.
● Ensured no major functionality loss if compared to stock Chrome.
![Page 19: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/19.jpg)
Mus’ External Window Mode (2/)● Added support to:
○ XDG v6.○ Keyboard events, auto repeat, clipboard.○ Mouse cursors.○ Touch events.○ Multiple windows.○ Built-in window decoration.○ Window closing.○ Menus, widgets, and tooltips.○ Support to common windowing features:
■ maximize, minimize, restore,fullscreen, dragging and resizing.
![Page 20: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/20.jpg)
About the project (1/)
● The project is being hosted on GitHub.● Well defined contribution policy:
○ Peer review.○ Buildbot running existing tests ensuring no
functionality loss.
![Page 21: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/21.jpg)
About the project (2/)
● Rebase strategy:○ Weekly based.○ Continuous history clean up.
● Periodic sync up with Google.● BlinkOn meeting (18th-19th of April):
○ Design discussion,○ Upstream plans discussion.
![Page 22: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/22.jpg)
About the project (3/)
● Documentation available at https://docs.google.com/document/d/1yzUWttsyqTh31vAyn4Xj4xblr3GOYlF44lBlFP_ixT0
![Page 23: The Chromium/Wayland project - Automotive Grade Linux · The Chromium/Wayland project Maksim Sisov, msisov@igalia.com Antonio Gomes, tonikitoo@igalia.com](https://reader030.vdocuments.net/reader030/viewer/2022040606/5eb47b9acaf8e8071421231e/html5/thumbnails/23.jpg)
Next steps
● Integration with AGL as web runtime.● Continue upstreaming the project to ToT (clipboard,
popup windows).● General bug fixing.● Decouple GPU service from the main browser process
to gain additional 15% of performance gain (figures from Google engineers working on new VIZ service).