refactor: replace USE_X11 with OS_LINUX for sharing code with Ozone#12
refactor: replace USE_X11 with OS_LINUX for sharing code with Ozone#12
Conversation
🔍 PR Link Analysis🔗 Ranked Links#1 https://github.com/electron/electron/blob/master/CONTRIBUTING.md🔍 This pull request replaces USE_X11 with OS_LINUX to enable sharing code with Ozone, a key step in supporting Wayland by aligning with Chromium's platform-agnostic approach. #2 these Wayland patches🔍 The PR's refactor to replace USE_X11 with OS_LINUX is a foundational step for enabling Wayland support by ensuring code is shared appropriately across Linux platforms. #3 commit guidelines🔍 This change replaces #4 going away🔍 The PR aims to enable Wayland support by replacing USE_X11 with OS_LINUX, as Wayland offers better rendering performance than X11 on Linux, especially for embedded devices. #5 these chromium changes🔍 This change replaces USE_X11 with OS_LINUX to enable sharing code between X11 and Wayland backends in Ozone. #6 chromium#1085700🔍 The change replaces |
Description of Change
This pull-request is a small first step in trying to bring support for Wayland to Electron. I'm planning to follow up on this with more pull-requests in an effort to upstream these Wayland patches.
However, those patches will need some adjustments in order to make them compatible with the upcoming Chromium changes (chromium#1085700) which will soon be merged into Electron (#25488). In particular, it should be taken into consideration that the
USE_X11andUSE_OZONEbuild flags are no longer mutually exclusive.Also,
USE_X11is going away so it might be desirable as a long term goal to remove it from Electron too and replace it with the Ozone equivalents.With that in mind, this pull-request replaces a few instances of
#if defined(USE_X11)with#if defined(OS_LINUX)where it was identified that the guarded code could be shared with Ozone.The more meaningful changes will come in the upcoming pull-requests but I'll be waiting for these chromium changes to be pulled into Electron first (#24984, #25488).
Checklist
npm testpassesRelease Notes
Notes: none