Electron: Pertimbangkan untuk menyediakan bangunan untuk Wayland

Dibuat pada 25 Okt 2017  ·  139Komentar  ·  Sumber: electron/electron

  • Versi elektron: apa saja
  • Sistem operasi: Linux

Perilaku yang diharapkan

Ubuntu terbaru hadir dengan Wayland sebagai server tampilan default.
Pada perangkat yang disematkan, wayland biasanya memberikan kinerja rendering terbaik, setidaknya dibandingkan dengan X11 di mana kinerjanya biasanya sangat buruk.

Perilaku sebenarnya

Rilis biner linux / arm / arm64 saat ini bagus tetapi berjalan sangat buruk dari pengalaman saya pada perangkat yang disematkan. Mereka semua menautkan ke libx11 / gtk yang membuatnya tidak dapat digunakan untuk wayland.

libGtk dapat dibangun dengan --wayland-backend dan kemudian elektron dapat dibangun melawannya

Saya sangat ingin tim elektron mempertimbangkan untuk menyediakan binari prebuilt yang dapat digunakan dengan wayland, yang akan membuka berbagai kemungkinan baru, terutama pada perangkat yang disematkan.

blockeupstream ❌ enhancement platforlinux

Komentar yang paling membantu

Pembaruan : Kami (Igalia) saat ini sedang mengerjakan migrasi warisan Chromium/Linux (alias: Aura/X11) ke Ozone ( crbug.com/789065 ), sehingga backend X11 atau Wayland Ozone dapat dipilih sesuai saat runtime. Selain itu, ada persyaratan untuk dapat beralih antara Ozon dan warisan saat runtime sebagai mekanisme mundur jika terjadi kesalahan selama periode transisi ini. Setelah ini selesai, dan wayland backend dipoles dan diuji dengan benar, diharapkan akan masuk ke rilis resmi Chromium/Linux.

Sangat menyenangkan mendengar bahwa vscode/electron sudah dapat berjalan di atas chromium ozone/wayland (saya perlu mencari waktu untuk mencobanya sendiri :)). Terima kasih telah bekerja dan berbagi ini.

Untuk tindak lanjut lebih lanjut, hubungi kami di {nickdiego,msisov}@igalia.com

Semua 139 komentar

Setelah membaca sedikit, sepertinya cara terbaik untuk mencapai ini adalah dengan mengaktifkan ozon di dalam chromium build. Jadi saya ingin tahu apakah seseorang pernah melakukan itu atau apakah saya bisa mendapatkan beberapa petunjuk untuk mencobanya?
Juga apakah ada bagian lain dari elektron yang akan memiliki ketergantungan X11 yang kuat? GTK3 seharusnya tidak pada saat ini tetapi bertanya-tanya apakah hal-hal seperti brightray miliki?

Tampilan lebih lanjut di build menunjukkan bahwa elektron bergantung pada kromium libgtkui.
Libgtkui di chromium memiliki ketergantungan yang agak kuat pada X11 dan tidak akan dibangun di atas apa pun selain X11 / OSX / Win pada saat ini.

Saya tidak yakin untuk apa libgtkui di chromium digunakan (itu tidak ada di libgtk3).
sepertinya ini untuk membuat ikon status dan indikator aplikasi.
Saya ingin tahu apakah mungkin membuat itu opsional ...

Saya telah berhasil menambal libchromiumcontent untuk membuatnya dibangun tanpa X11.
Ini membutuhkan beberapa tambalan dan tidak terlalu cocok.

libchromiumcontent dapat dibangun dalam kasus itu dengan use_aura=true use_ozone=true dan beberapa parameter lainnya. untuk detail lebih lanjut lihat tambalan saya di sini https://github.com/LongChair/libchromiumcontent/commits/upgrade-to-chromium-61

Kemudian saya memulai pembuatan elektron dan situasinya serupa. Meskipun sebagian besar kode memiliki beberapa bagian #if defined(USE_AURA) , kode tersebut jelas tidak dapat dibuat untuk aura dengan ozon pada saat ini meskipun libgtk3ui tidak akan bergantung padanya.

Ada juga bit dalam file brightray GYP yang membuatnya bergantung pada X11, versi wayland perlu ditautkan dengan lib displaymanager yang tepat ( wayland-client, ... ) .

Saya percaya bahwa cara terbaik untuk membuatnya dapat dibangun tanpa terlalu banyak kerumitan di linux dan tanpa dukungan X11, adalah dengan membuat komponen libgtk3ui menggunakan opsional dalam pembuatannya. Tetapi saya tidak cukup tahu elektron untuk mengetahui apa yang akan dipatahkan/dibuat tidak tersedia. sepertinya itu sebagian besar ikon bilah tugas, yang tidak terlalu menjadi masalah karena tidak ada bilah tugas di weston :)

Saya kira saya akan menghentikan upaya saya di sini karena itu membuat terlalu banyak tambalan dan belum ada minat / umpan balik tentang ini dari tim elektron saat ini :)

Ini akan memungkinkan berjalan melalui peretasan di ChromeOS juga.

Ini akan memungkinkan berjalan melalui peretasan di ChromeOS juga.

Itu sedikit menggelitik minat saya, dapatkah Anda menjelaskan bagaimana itu akan berhasil?

Perangkat chromeos terbaru, yang menggabungkan runtime android menggunakan wayland untuk menampilkan aplikasi non-chrome.

Saya telah berhasil mengkompilasi dan menjalankan demo hello wayland.

ChromeOS menggunakan Aura & Ozone, baik dengan Wayland atau GBM/KMS.
Masih masalah yang disebutkan di atas adalah sama. libgtkui masih menjadi masalah utama untuk membuat build, baik dalam kromium & elektron.

Kemajuan bagus @LongChair !
Saya juga sedang menyelidikinya tetapi lebih suka menguji Chrome (Chromium) untuk Wayland terlebih dahulu. Saya kira mesin V8 adalah bagian terbesar untuk migrasi, baik di Chrome maupun Electron.
Igalia memiliki garpu kromium yang dekat dengan hulu: https://github.com/Igalia/chromium
Mungkin kami dapat mengintegrasikan patch Igalia ke dalam build Electron Anda?
Nah, saya belum bisa menjalankan Chromium di Wayland ...

Saya dapat mengkompilasi dan menjalankan chromium dengan patch wayland! Lihat skrip build di sini: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=chromium-wayland-git

@onny : seperti yang saya maksud sebelumnya, tampaknya banyak dependensi X11 masih dalam elektron itu sendiri karena jika penggunaan libgtkui di libcc build.

Sejauh yang saya lihat elektron juga menangani AURA sebagai parameter build tetapi kemudian mengasumsikan bahwa aura/x11 digunakan. jadi saat ini tidak ada cara untuk membuatnya dibangun tanpa X11.

itu akan berjalan di Xwayland / Wayland tetapi ini jauh dari membawa kinerja wayland, terutama pada tertanam.

Oh itu menarik:

Electron sekarang menggunakan GTK3 di cabang master, akan dikirimkan dalam rilis minor/mayor berikutnya.
https://github.com/electron/electron/issues/2927#issuecomment -347092515

👍

@onny : ya itulah yang dibawa chromium 61. ini kemajuan.

Apa yang saya cari adalah versi asli wayland dari elektron karena X11 (Xwayland) cenderung menurunkan kinerja secara keseluruhan.
Untuk ini ada dua masalah, bahkan jika Chromium dibangun dan dijalankan di wayland asli, ini tanpa libgtkui afaik. ketergantungan yang ditambahkan libcc ke chromium build itu sendiri tampaknya sangat bergantung pada X11 pada saat ini.
Selain kromium, kode elektron itu sendiri bergantung pada libcc:gtkui , tetapi juga pada banyak fungsi X11 yang tidak tersedia di wayland asli.

Saya tidak yakin bagaimana ketergantungan X11 itu dapat diatasi. Hal-hal berikut akan diperlukan:

  • Singkirkan elektron dari kebutuhan licbc gtkui. ? jika tidak memungkinkan maka mintalah chromium membuatnya kompatibel dengan X11 / Wayland
  • Singkirkan dependensi wajib X11. Kode elektron tampaknya menggunakan AURA tetapi menganggap itu AURA X11 di mana itu bisa menjadi AURA / Wayland. Saya tidak yakin apakah ada yang setara untuk fungsi X11 yang digunakan.

Akan lebih baik jika beberapa pengembang elektron dapat mengevaluasi itu atau membawa beberapa umpan balik/pertimbangan teknis di sini :)

Ada berita tentang ini?

Hai! Saya hanya ingin berbagi bahwa kami (dari Igalia) memiliki dukungan untuk Wayland di tingkat Chromium (browser) dan Konten (lapisan penyematan) di https://github.com/Igalia/chromium/.

Jadi, bergantung pada bagaimana seseorang mengonfigurasi elektron di atas chromium/x11 biasa saat ini, mungkin sangat mudah untuk mencobanya di atas chromium/wayland.

Perbedaan terbesar adalah bahwa:

  • chromium/wayland build memiliki "ozon" yang diaktifkan.
  • chromium/wayland berjalan di atas "layanan UI" yang sedang dikembangkan, di chromium-land.

tolong hubungi saya di \tonikitoo at igalia dot com\, jika ada yang ingin menindaklanjuti ini.

adakah yang menemukan solusi untuk menjalankan Electron tanpa X11?

@tonikitoo apakah Anda memiliki indikasi kapan pekerjaan Anda di Wayland akan diintegrasikan kembali ke hulu?

@luispabon pekerjaan sedang aktif di hulu. Kami memperkirakan bahwa sekitar 85% sudah ada di jalur utama kromium.

/cc @msisov

@tonikitoo excelente 👍

hai @tonikitoo , ada kabar baik tentang elektron dengan xwayland, wayland atau weston?

kami tidak mengerjakan elektron, melainkan menambahkan dukungan untuk wayland di Chromium :)

crbug.com/578890

Ada berita tentang dukungan wayland? Saya ingin melihat VSCode berjalan secara native di wayland daripada Xwayland.

@GitHubRepositoryX ikuti perkembangan masalah crbug di komentar sebelumnya di komentar Anda, masih aktif diperbarui.

Saya perhatikan bahwa chromium baru-baru ini ditambal untuk mendukung libgtkui pada ozon (baik X11 dan Wayland): https://chromium-review.googlesource.com/c/chromium/src/+/1744372

Jadi itu kemungkinan akan menyelesaikan masalah yang disebutkan @LongChair , karena libgtkui masih dapat digunakan di jalur ozon.

Saya mencoba menyalakan flag build ozon/wayland dan meretas beberapa masalah, dan saya berhasil membuatnya ke titik di mana ia berfungsi! Kode masih perlu dibersihkan, diuji, dan dipisahkan menjadi perubahan yang lebih kecil sebelum saya membuat PR, tetapi ini cabangnya: https://github.com/electron/electron/compare/master...hedgepigdaniel :ozone?expand= 1

Kesadaran perubahan DPI (https://github.com/electron/electron/issues/11050) berfungsi dengan baik seperti pada pembuatan ozon/wayland chromium, dan bagian yang hilang juga rusak, misalnya belum ada dialog buka file (walaupun Saya pikir mereka sedang dikerjakan sekarang).

Sebagian besar perubahan hanya memisahkan penggunaan USE_X11 (yang sebelumnya menggabungkan linux dan X11) dengan kombinasi OS_LINUX dan USE_X11 atau USE_OZONE .

USE_X11 akan dihapus dari basis kode chromium segera setelah kita semakin dekat untuk memiliki Ozone/X11 dan Ozone/Wayland tanpa X11 biasa.

Juga, untuk dapat menggunakan dialog file dan gtk, Anda harus mengkompilasi ozon dengan use_glib=true diaktifkan. IIRC, use_gtk disetel ke true secara default.

Jadi, apakah ide yang lebih baik untuk mengganti if use_x11 dengan if !use_ozone and os_linux ? Atau sesuatu yang lain?

Saya akan mencoba dengan flag use_glib. Saya menganggap bahwa dialog file berfungsi?

Ya benar. Padahal, modalitasnya belum berfungsi. Tapi Anda bisa menggunakannya.

ini akan sangat fenomenal. Mungkin kita juga bisa melakukan scrolling di linux agar sebagus di windows. (kinetis)

Pengguna Arch: https://aur.archlinux.org/packages/electron-ozone

Saya sudah membuatnya bekerja dengan VSCode terbaru ( code-git hanya perlu ditambal untuk menggunakan electron daripada electron6 mengikuti https://github.com/microsoft/vscode/pull/ 83796)

Ada beberapa gejala aneh (mungkin saya mengomentari kode yang tidak saya mengerti) - tetapi berhasil. Begitu tajam, dan ukurannya sangat tepat!

@hedgepigdaniel apakah Anda akan membuat PR dengan perubahan Anda? Saya baru saja mencoba memeriksa dan mengkompilasi elektron menggunakan flag gn dari PKGBUILD Anda tetapi saya mendapatkan kesalahan kompilasi ... hal-hal seperti:

../../ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc:53:15: error: no member named 'find_if' in namespace 'std'
(easy fix: just #include <algorithm>)
../../electron/shell/browser/ui/x/window_state_watcher.cc:59:32: error: no member named 'xproperty' in 'ui::Event'
  ::Atom changed_atom = event->xproperty.atom;
                        ~~~~~  ^
../../electron/shell/browser/ui/x/window_state_watcher.cc:61:18: error: reference to non-static member function must be called; did you mean to call it with no arguments?
          event->type == PropertyNotify && event->xproperty.window == widget_);
          ~~~~~~~^~~~
                     ()
../../electron/shell/browser/ui/x/window_state_watcher.cc:61:51: error: no member named 'xproperty' in 'ui::Event'
          event->type == PropertyNotify && event->xproperty.window == widget_);
                                           ~~~~~  ^

(these might be fixed by your conditional compiles?)

sepertinya ini mungkin diperbaiki oleh komit Anda?

Pembaruan : Kami (Igalia) saat ini sedang mengerjakan migrasi warisan Chromium/Linux (alias: Aura/X11) ke Ozone ( crbug.com/789065 ), sehingga backend X11 atau Wayland Ozone dapat dipilih sesuai saat runtime. Selain itu, ada persyaratan untuk dapat beralih antara Ozon dan warisan saat runtime sebagai mekanisme mundur jika terjadi kesalahan selama periode transisi ini. Setelah ini selesai, dan wayland backend dipoles dan diuji dengan benar, diharapkan akan masuk ke rilis resmi Chromium/Linux.

Sangat menyenangkan mendengar bahwa vscode/electron sudah dapat berjalan di atas chromium ozone/wayland (saya perlu mencari waktu untuk mencobanya sendiri :)). Terima kasih telah bekerja dan berbagi ini.

Untuk tindak lanjut lebih lanjut, hubungi kami di {nickdiego,msisov}@igalia.com

Saya tidak percaya ini akhirnya terjadi, mimpi menjadi kenyataan ... Semoga tidak butuh waktu lama untuk menggabungkan tambalan ppc64le

Menjalankan arch/sway, membangun elektron-ozon tampaknya berjalan lancar, tetapi kemudian ketika saya menjalankan elektron:

electron -i

[57306:0311/201354.632474:FATAL:ozone_platform_wayland.cc(171)] Failed to initialize Wayland platform

tolong tinggalkan di sini apa dua perintah ini

echo $WAYLAND_DISPLAY
echo $XDG_RUNTIME_DIR

menunjukkan.

 ~ echo $WAYLAND_DISPLAY
wayland-0
 ~ echo $XDG_RUNTIME_DIR
/run/user/1000

Saya mendapatkan kesalahan yang sama persis dengan @garth menggunakan paket elektron-ozon @hedgepigdaniel (saya juga menggunakan arch/sway).

Pada mesin yang sama, chromium-ozone berjalan dengan baik (kecuali untuk beberapa masalah kecil seperti menu konteks/pilih salah penempatan input: chromium#1052685 ).

ok, coba jalankan aplikasinya dengan cara berikut:

WAYLAND_DISPLAY=1 ./aplikasi-Anda.

Apakah itu bekerja sekarang? Jika tidak, coba jalankan dengan WAYLAND_DEBUG=1 dan bagikan hasilnya. Terima kasih

Saya mendapatkan kesalahan yang sama persis dengan @garth menggunakan paket elektron-ozon @hedgepigdaniel (saya juga menggunakan arch/sway).

Pada mesin yang sama, chromium-ozone berjalan dengan baik (kecuali untuk beberapa masalah kecil seperti menu konteks/pilih salah penempatan input: chromium#1052685 ).

Saya tidak melihatnya. Terima kasih telah memposting tautan ini di sini. Ini akan diprioritaskan dan diperbaiki.

Di bawah Sway:

 ~ WAYLAND_DISPLAY=1 electron -i
> [130498:0312/123434.824982:FATAL:ozone_platform_wayland.cc(171)] Failed to initialize Wayland platform

Saya juga menguji dengan Gnome dan berhasil.

harus

WAYLAND_DISPLAY=wayland-1 (if such display socket exists)


Menurut env saya seharusnya wayland-0, tetapi saya mencoba 0 dan 1 dengan efek yang sama. Berikut adalah hasil debugnya.

 ~ WAYLAND_DISPLAY=wayland-0 WAYLAND_DEBUG=1 electron -i
> [430007.888]  -> [email protected]_registry(new id wl_registry@2)
[430007.898]  -> [email protected](new id wl_callback@3)
[430008.013] [email protected]_id(3)
[430008.020] [email protected](1, "wl_shm", 1)
[430008.028]  -> [email protected](1, "wl_shm", 1, new id [unknown]@4)
[430008.040] [email protected](2, "zwp_linux_dmabuf_v1", 3)
[430008.051]  -> [email protected](2, "zwp_linux_dmabuf_v1", 3, new id [unknown]@5)
[430008.062]  -> [email protected](new id wl_callback@6)
[430008.066] [email protected](3, "wl_drm", 2)
[430008.075] [email protected](4, "wl_compositor", 4)
[430008.087]  -> [email protected](4, "wl_compositor", 4, new id [unknown]@7)
[430008.124] [email protected](5, "wl_subcompositor", 1)
[430008.136]  -> [email protected](5, "wl_subcompositor", 1, new id [unknown]@8)
[430008.152] [email protected](6, "wl_data_device_manager", 3)
[430008.161]  -> [email protected](6, "wl_data_device_manager", 3, new id [unknown]@9)
[430008.209] [email protected](7, "zwlr_gamma_control_manager_v1", 1)
[430008.220] [email protected](8, "gtk_primary_selection_device_manager", 1)
[430008.232] [email protected](9, "zxdg_output_manager_v1", 3)
[430008.244] [email protected](10, "org_kde_kwin_idle", 1)
[430008.257] [email protected](11, "zwp_idle_inhibit_manager_v1", 1)
[430008.269] [email protected](12, "zwlr_layer_shell_v1", 2)
[430008.281] [email protected](13, "xdg_wm_base", 2)
[430008.293] [email protected](14, "zwp_tablet_manager_v2", 1)
[430008.304] [email protected](15, "org_kde_kwin_server_decoration_manager", 1)
[430008.317] [email protected](16, "zxdg_decoration_manager_v1", 1)
[430008.329] [email protected](17, "zwp_relative_pointer_manager_v1", 1)
[430008.340] [email protected](18, "zwp_pointer_constraints_v1", 1)
[430008.352] [email protected](19, "wp_presentation", 1)
[430008.364]  -> [email protected](19, "wp_presentation", 1, new id [unknown]@10)
[430008.380] [email protected](20, "zwlr_output_manager_v1", 1)
[430008.391] [email protected](21, "zwlr_export_dmabuf_manager_v1", 1)
[430008.402] [email protected](22, "zwlr_screencopy_manager_v1", 2)
[430008.414] [email protected](23, "zwlr_data_control_manager_v1", 2)
[430008.427] [email protected](24, "zwp_primary_selection_device_manager_v1", 1)
[430008.437] [email protected](25, "zwp_virtual_keyboard_manager_v1", 1)
[430008.449] [email protected](26, "zwlr_virtual_pointer_manager_v1", 1)
[430008.461] [email protected](27, "zwlr_input_inhibit_manager_v1", 1)
[430008.473] [email protected](28, "wl_seat", 7)
[430008.499]  -> [email protected](28, "wl_seat", 4, new id [unknown]@11)
[430008.516]  -> [email protected]_data_device(new id wl_data_device<strong i="10">@12</strong>, wl_seat@11)
[430008.526] [email protected](29, "zwp_pointer_gestures_v1", 1)
[430008.538] [email protected](30, "wl_output", 3)
[430008.548]  -> [email protected](30, "wl_output", 3, new id [unknown]@13)
[430008.583] [email protected](241)
[430008.698] [email protected]_id(6)
[430008.716] [email protected](1211384385, 0, 0)
[430008.723] [email protected](1211384385, 16777216, 1)
[430008.729] [email protected](1211384385, 16777216, 2)
[430008.736] [email protected](1211384385, 16777216, 4)
[430008.762] [email protected](1211384408, 0, 0)
[430008.771] [email protected](1211384408, 16777216, 1)
[430008.781] [email protected](1211384408, 16777216, 2)
[430008.803] [email protected](1211384408, 16777216, 4)
[430008.832] [email protected](808669761, 0, 0)
[430008.844] [email protected](808669761, 16777216, 1)
[430008.856] [email protected](808669761, 16777216, 2)
[430008.868] [email protected](808669784, 0, 0)
[430008.880] [email protected](808669784, 16777216, 1)
[430008.891] [email protected](808669784, 16777216, 2)
[430008.903] [email protected](808665665, 0, 0)
[430008.913] [email protected](808665665, 16777216, 1)
[430008.925] [email protected](808665665, 16777216, 2)
[430008.937] [email protected](808665688, 0, 0)
[430008.948] [email protected](808665688, 16777216, 1)
[430008.958] [email protected](808665688, 16777216, 2)
[430008.969] [email protected](875713089, 0, 0)
[430008.981] [email protected](875713089, 16777216, 1)
[430009.006] [email protected](875713089, 16777216, 2)
[430009.035] [email protected](875713089, 16777216, 4)
[430009.046] [email protected](875708993, 0, 0)
[430009.058] [email protected](875708993, 16777216, 1)
[430009.069] [email protected](875708993, 16777216, 2)
[430009.081] [email protected](875708993, 16777216, 4)
[430009.093] [email protected](875713112, 0, 0)
[430009.105] [email protected](875713112, 16777216, 1)
[430009.129] [email protected](875713112, 16777216, 2)
[430009.141] [email protected](875713112, 16777216, 4)
[430009.152] [email protected](875709016, 0, 0)
[430009.183] [email protected](875709016, 16777216, 1)
[430009.193] [email protected](875709016, 16777216, 2)
[430009.204] [email protected](875709016, 16777216, 4)
[430009.230] [email protected](892424769, 0, 0)
[430009.261] [email protected](892424769, 16777216, 1)
[430009.272] [email protected](892424769, 16777216, 2)
[430009.285] [email protected](909199186, 0, 0)
[430009.297] [email protected](909199186, 16777216, 1)
[430009.310] [email protected](909199186, 16777216, 2)
[430009.320] [email protected](538982482, 0, 0)
[430009.331] [email protected](538982482, 16777216, 1)
[430009.342] [email protected](538982482, 16777216, 2)
[430009.354] [email protected](540422482, 0, 0)
[430009.364] [email protected](540422482, 16777216, 1)
[430009.387] [email protected](540422482, 16777216, 2)
[430009.415] [email protected](943215175, 0, 0)
[430009.427] [email protected](943215175, 16777216, 1)
[430009.440] [email protected](943215175, 16777216, 2)
[430009.464] [email protected](842224199, 0, 0)
[430009.493] [email protected](842224199, 16777216, 1)
[430009.506] [email protected](842224199, 16777216, 2)
[430009.517] [email protected](842224199, 16777216, 4)
[430009.528] [email protected](961959257, 0, 0)
[430009.539] [email protected](961959257, 16777216, 1)
[430009.550] [email protected](961959257, 16777216, 2)
[430009.562] [email protected](825316697, 0, 0)
[430009.574] [email protected](825316697, 16777216, 1)
[430009.586] [email protected](825316697, 16777216, 2)
[430009.598] [email protected](842093913, 0, 0)
[430009.610] [email protected](842093913, 16777216, 1)
[430009.635] [email protected](842093913, 16777216, 2)
[430009.646] [email protected](909202777, 0, 0)
[430009.658] [email protected](909202777, 16777216, 1)
[430009.670] [email protected](909202777, 16777216, 2)
[430009.682] [email protected](875713881, 0, 0)
[430009.694] [email protected](875713881, 16777216, 1)
[430009.704] [email protected](875713881, 16777216, 2)
[430009.716] [email protected](961893977, 0, 0)
[430009.727] [email protected](961893977, 16777216, 1)
[430009.739] [email protected](961893977, 16777216, 2)
[430009.751] [email protected](825316953, 0, 0)
[430009.763] [email protected](825316953, 16777216, 1)
[430009.775] [email protected](825316953, 16777216, 2)
[430009.787] [email protected](842094169, 0, 0)
[430009.799] [email protected](842094169, 16777216, 1)
[430009.811] [email protected](842094169, 16777216, 2)
[430009.823] [email protected](909203033, 0, 0)
[430009.854] [email protected](909203033, 16777216, 1)
[430009.864] [email protected](909203033, 16777216, 2)
[430009.871] [email protected](875714137, 0, 0)
[430009.882] [email protected](875714137, 16777216, 1)
[430009.892] [email protected](875714137, 16777216, 2)
[430009.917] [email protected](842094158, 0, 0)
[430009.929] [email protected](842094158, 16777216, 1)
[430009.942] [email protected](842094158, 16777216, 2)
[430009.953] [email protected](808530000, 0, 0)
[430009.966] [email protected](808530000, 16777216, 1)
[430009.978] [email protected](808530000, 16777216, 2)
[430009.990] [email protected](842084432, 0, 0)
[430010.000] [email protected](842084432, 16777216, 1)
[430010.011] [email protected](842084432, 16777216, 2)
[430010.023] [email protected](909193296, 0, 0)
[430010.035] [email protected](909193296, 16777216, 1)
[430010.048] [email protected](909193296, 16777216, 2)
[430010.058] [email protected](909203022, 0, 0)
[430010.068] [email protected](909203022, 16777216, 1)
[430010.079] [email protected](909203022, 16777216, 2)
[430010.090] [email protected](1448433985, 0, 0)
[430010.103] [email protected](1448433985, 16777216, 1)
[430010.114] [email protected](1448433985, 16777216, 2)
[430010.125] [email protected](1448433985, 16777216, 4)
[430010.137] [email protected](1448434008, 0, 0)
[430010.149] [email protected](1448434008, 16777216, 1)
[430010.160] [email protected](1448434008, 16777216, 2)
[430010.171] [email protected](1448434008, 16777216, 4)
[430010.182] [email protected](1448695129, 0, 0)
[430010.211] [email protected](1448695129, 16777216, 1)
[430010.221] [email protected](1448695129, 16777216, 2)
[430010.230] [email protected](1498831189, 0, 0)
[430010.252] [email protected](1498831189, 16777216, 1)
[430010.282] [email protected](1498831189, 16777216, 2)
[430010.293] [email protected](241)
[430010.299] [email protected]("seat0")
[430010.304] [email protected](3)
[430010.310]  -> [email protected]_pointer(new id wl_pointer@6)
[430010.330]  -> [email protected]_surface(new id wl_surface@3)
[430010.355]  -> [email protected]_keyboard(new id wl_keyboard@14)
[430010.363] [email protected](0, 0, 340, 190, 0, "Unknown", "0xA029", 0)
[430010.385] [email protected](1, 3840, 2160, 60000)
[430010.428] [email protected](2)
[430010.435] [email protected]()
[5217:0312/130033.546314:FATAL:ozone_platform_wayland.cc(171)] Failed to initialize Wayland platform
[1]    5217 trace trap (core dumped)  WAYLAND_DISPLAY=wayland-0 WAYLAND_DEBUG=1 electron -i

Saya mungkin melewatkannya, tetapi apa spesifikasi sistem Anda?

OS: Arch Linux x86_64 
Host: XPS 15 7590 
Kernel: 5.5.8-arch1-1 
Uptime: 35 mins 
Packages: 1222 (pacman) 
Shell: zsh 5.8 
Resolution: 3840x2160 
DE: GNOME 
WM: sway 
Theme: Material-Black-Frost [GTK2/3] 
Icons: Black-Frost-Numix [GTK2/3] 
Terminal: termite 
Terminal Font: MonoLisa 11 
CPU: Intel i7-9750H (12) @ 4.500GHz 
GPU: Intel UHD Graphics 630 
GPU: NVIDIA GeForce GTX 1650 Mobile / Max-Q 
Memory: 3492MiB / 31753MiB 

Saya kira Anda menggunakan Mesa dan GPU yang Anda gunakan adalah yang intel, bukan?

Bisakah Anda pergi ke ui/ozone/platform/wayland/Host/wayland_connection.cc[1] dan ubah ini

display_.reset(wl_display_connect(nullptr));

ke

display_.reset(wl_display_connect("wayland-0"));
[1] https://cs.chromium.org/chromium/src/ui/ozone/platform/wayland/host/wayland_connection.cc?q=wayland_connection.cc&dr&l=58

dan, btw, apakah Anda memiliki kompilasi kromium dengan sistem libwayland? ini juga bisa menjadi masalah.

Saya menggunakan AUR, jadi tidak yakin tentang libwayland. Saya sedang menyinkronkan repo untuk membuat perubahan yang Anda sarankan.

Dan ya, saya menjalankan Mesa/Intel karena Nvidia hanya menjual batu bata lembam yang tidak lebih dari menambah bobot pada laptop Linux.

Saya mengacu pada ini - https://cs.chromium.org/chromium/src/third_party/wayland/features.gni?type=cs&q=use_system_libwayland&g=0&l=8

Jika Anda belum menyentuh gn arg itu, coba setel ke true dan kompilasi ulang.

@msisov Saya telah mengubah kedua file src seperti yang Anda sarankan dan kompilasi ulang. Sayangnya hasilnya sama.

Saya juga telah membuat paket AUR electron-ozone dan juga gagal tetapi dengan yang berikut:

~ # GDK_BACKEND=x11 electron

[538602:0407/171819.513284:FATAL:ozone_platform_wayland.cc(171)] Failed to initialize Wayland platform
[1]    538602 trace trap (core dumped)  GDK_BACKEND=x11 electron
~ # GDK_BACKEND=wayland electron                                                                                                                                         133

(electron:538765): Gtk-WARNING **: 17:18:40.362: cannot open display: :0



md5-09c493bca06795a5a417eb676256b4ca



'blink_symbol_level=0'
'icu_use_data_file=false'
'is_component_ffmpeg=false'
'link_pulseaudio=true'
'linux_use_bundled_binutils=false'
'treat_warnings_as_errors=false'
'use_custom_libcxx=false'
'use_gnome_keyring=false'
'use_sysroot=false'
'use_ozone=true'
'ozone_auto_platforms=false'
'ozone_platform_wayland=true'
'ozone_platform_x11=true'
'use_xkbcommon=true'
'use_system_libwayland=true'
'use_system_minigbm=true'
'use_system_libdrm=true'
'use_glib=true'

Saya berhasil menjalankan Electron di bawah Wayland dengan me- rebasing patch @hedgepigdaniel di atas rilis stabil 8.2.1 .

Akan lebih baik jika @hedgepigdaniel akan memperbarui paket AUR elektron-ozon dengan perubahan ini (saya dapat mengirimkan permintaan tarik jika itu membantu).

Sunting: Paket AUR elektron-ozon telah diperbarui dengan perubahan ini.

Satu kemungkinan alasan mengapa paket AUR electron-ozone gagal untuk beberapa pengguna sway mungkin karena penghapusan xdg-Shell v6 tidak stabil di sway v1.4 (https://github.com/swaywm/sway/ pull/4466) yang digunakan di Electron 7.1.8/Chromium 78 ( chromium#997631 ).

@vially luar biasa!

Saya telah membuat https://github.com/hedgepigdaniel/pkgbuild-electron-ozone yang merupakan cermin dari paket AUR - Anda dipersilakan untuk mengirimkan PR dan saya akan mempublikasikannya.

Paket telah diperbarui, terima kasih @vially

Dapat mengonfirmasi bahwa build baru berfungsi di sway .

Meskipun tampaknya tidak berfungsi dengan code-git build dari vscode - Saya mendapatkan dua jendela code-git dan Code - OSS keduanya kosong - tapi mungkin itu masalah dengan vscode .

Dapat mengonfirmasi bahwa build baru berfungsi di sway .

Meskipun tampaknya tidak berfungsi dengan code-git build dari vscode - Saya mendapatkan dua jendela code-git dan Code - OSS keduanya kosong - tapi mungkin itu masalah dengan vscode .

Saya tidak berpikir VSCode telah diperbarui untuk bekerja dengan elektron 8: https://github.com/microsoft/vscode/blob/304fc630f7f46db67a33def6b8dd3f8728033546/package.json#L99

Mungkin itu kesalahan bahwa paket kode-git belum diperbarui untuk bergantung pada elektron7 daripada elektron.

Saya mengerti, saya mencoba beberapa aplikasi lagi, seperti drawio-desktop dan tampaknya berfungsi dengan baik dengan build electron-ozone .

Adakah peluang untuk menambahkan flag build 'rtc_use_pipewire=true' untuk mendukung berbagi layar Wayland?

Saat tidak berada di lengkungan, apa saja opsi untuk membangun wayland?
kapan elektron akan dikirimkan bersama ozon?

Saya tidak berpikir VSCode telah diperbarui untuk bekerja dengan elektron 8

Sayang sekali, itu penghalang jalan saya yang sebenarnya karena bisa menggunakan Wayland. Tidak dapat menggunakannya di XWyaland karena aplikasi berskala XWayland sangat buram.

Saya melihat cabang elektron-8 dan sepertinya tidak ada yang istimewa tentang itu, mereka hanya menabrak versi elektron: https://github.com/microsoft/vscode/compare/electron-8.0.x

Jadi sepertinya vscode seharusnya bekerja dengan elektron 8 (tetapi mungkin ada beberapa bug, karena masih terbatas di cabangnya sendiri).
@nostdm dapatkah Anda memeriksa apakah ini berfungsi lebih baik di Xorg?

Saya memang mencoba vscode dengan electron-ozone build (versi 8.2.1 disebutkan di atas) dan itu memulai tetapi memiliki beberapa masalah yang menyebabkannya cukup sering macet sehingga saya harus melakukannya kembali ke versi X11/XWayland.

YMMV dan saya mendorong Anda untuk mencobanya karena pembuatannya sangat mudah. Untuk build saya, saya baru saja mengganti electron7 dengan electron di PKGBUILD ini :

-- _electron=electron7
++ _electron=electron

Sebagian besar kerusakan yang saya lihat dengan vscode disebabkan oleh beberapa bug yang juga saya temui di chromium-ozone versi 80 (kebanyakan terkait dengan tooltips). Kabar baiknya adalah bahwa sebagian besar kerusakan tersebut sekarang telah hilang dalam versi 81 dari chromium-ozone berkat pekerjaan berkelanjutan yang dilakukan oleh tim Igalia.

Bagi saya, jika elektron versi 9 (yang akan didasarkan pada kromium versi 82: #22932) ternyata stabil seperti kromium 81 di Wayland, saat itulah saya akan beralih untuk menjalankan vscode secara asli di Wayland dan tinggalkan XWayland untuk selamanya. Atau setidaknya itu rencananya :smiley:

Adakah peluang untuk menambahkan flag build 'rtc_use_pipewire=true' untuk mendukung berbagi layar Wayland?

Telah dilakukan pada versi 8.2.2 yang baru.

Terima kasih! Itu berita bagus. Saya akan mengujinya ketika saya mendapat kesempatan.

Terima kasih atas karya Anda @hedgepigdaniel.
Saya menulis ebuild Gentoo berdasarkan PKGBUILD Anda:
https://github.com//12101111/overlay/blob/master/dev-util/electron/electron-8.2.3.ebuild
Itu dapat berjalan di bawah wayland (bergoyang), dan macet ketika vscode sedang dimuat (cabang elektron-8.0.x).
Dan itu tidak bisa dibuka di sesi X:

(electron-8:17347): Gtk-WARNING **: 21:48:29.145: cannot open display: :0

Apakah ozone_platform_x11 lebih tidak stabil daripada ozone_platform_wayland?

@12101111 Ozon/X11 adalah WIP, jadi ya, masih cukup tidak stabil. Bisakah Anda memberikan detail lebih lanjut tentang X env Anda? DE/WM dan versinya? Saya menjalankannya setiap hari di DE/WM yang berbeda tanpa masalah seperti itu.

@nickdiego Saya menggunakan server Xorg 1.20.8, mesa 20.0.4, gtk 3.24.18, sway 1.4, wm 4.3 yang luar biasa.
Pembentukan ozon tidak berjalan di bawah X atau Xwayland

$ GDK_BACKEND=x11 ./electron --no-sandbox

(electron:29446): Gtk-WARNING **: 10:17:14.534: cannot open display: :0
$ GDK_BACKEND=x11 ./electron --no-sandbox --gtk-debug=all --gdk-debug=all
Gtk-Message: 10:16:04.809: Failed to open display (null)
Gtk-Message: 10:16:04.809: Failed to separate connection to default display
Received signal 11 SEGV_MAPERR 000000000018
#0 0x55a48ab79f19 <unknown>
#1 0x55a48aaac243 <unknown>
#2 0x55a48ab79ad2 <unknown>
#3 0x7f23f46be160 <unknown>
#4 0x7f23f3851e80 <unknown>
#5 0x7f23f37259aa gtk_css_value_icon_theme_compute
#6 0x7f23f37483a7 _gtk_css_value_compute
#7 0x7f23f372e2b2 gtk_css_value_initial_compute
#8 0x7f23f37483a7 _gtk_css_value_compute
#9 0x7f23f372e15d gtk_css_value_inherit_compute
#10 0x7f23f37483a7 _gtk_css_value_compute
#11 0x7f23f3741094 gtk_css_static_style_compute_value
#12 0x7f23f372f428 _gtk_css_lookup_resolve
#13 0x7f23f3740ffa gtk_css_static_style_new_compute
#14 0x7f23f3740f5f gtk_css_static_style_get_default
#15 0x7f23f3730a02 gtk_css_node_init
#16 0x7f23f4580fa5 g_type_create_instance
#17 0x7f23f4571de1 g_object_new_internal
#18 0x7f23f4571838 g_object_new_with_properties
#19 0x7f23f45716a3 g_object_new
#20 0x7f23f3748608 gtk_css_widget_node_new
#21 0x7f23f38f1b5f gtk_widget_init
#22 0x7f23f4580fa5 g_type_create_instance
#23 0x7f23f4571de1 g_object_new_internal
#24 0x7f23f4571bf8 g_object_new_valist
#25 0x7f23f4571690 g_object_new
#26 0x7f23f36b3644 gtk_inspector_window_new
#27 0x7f23f390c69b gtk_window_set_debugging
#28 0x7f23f390c66a gtk_window_set_interactive_debugging
#29 0x7f23f37d3f3c gtk_init_check
#30 0x7f23f37d3f46 gtk_init
#31 0x55a48e81e106 <unknown>
#32 0x55a48e814ad2 <unknown>
#33 0x55a48e819e7b <unknown>
#34 0x55a48864637a <unknown>
#35 0x55a48a200beb <unknown>
#36 0x55a48a205068 <unknown>
#37 0x55a48a2003a6 <unknown>
#38 0x55a48a0862a4 <unknown>
#39 0x55a48a085fc3 <unknown>
#40 0x55a48c111201 <unknown>
#41 0x55a4891d0ffe <unknown>
#42 0x55a48858bcc2 <unknown>
#43 0x7f23f00ffe1b __libc_start_main
#44 0x55a48858ba6a _start
  r8: 0000000000000000  r9: 0000000000000065 r10: 0000000000000028 r11: 0000000000000000
 r12: 0000000000000000 r13: 0000213a58f820a0 r14: 0000000000000000 r15: 0000213a58f820a0
  di: 0000000000000000  si: 0000213a58e7b5b0  bp: 0000000000000003  bx: 0000000000000000
  dx: 0000213a58e7b5b0  ax: 0000000000000000  cx: fffffffd52dbbc5e  sp: 00007fff0d0d5038
  ip: 00007f23f3851e80 efl: 0000000000010206 cgf: 002b000000000033 erf: 0000000000000004
 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000018
[end of stack trace]
Calling _exit(1). Core file will not be generated.

lldb:

$ GDK_BACKEND=x11 lldb ./electron
(lldb) target create "./electron"
Current executable set to '/tmp/electron-ozone/usr/lib64/electron-8/electron' (x86_64).
(lldb) r --no-sandbox --gtk-debug=all --gdk-debug=all
Process 26504 launched: '/tmp/electron-ozone/usr/lib64/electron-8/electron' (x86_64)
Gtk-Message: 10:12:06.866: Failed to open display (null)
Gtk-Message: 10:12:06.866: Failed to separate connection to default display
Process 26504 stopped
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x18)
    frame #0: 0x00007ffff711ce80 libgtk-3.so.0`_gtk_settings_get_screen(settings=0x0000000000000000) at gtksettings.c:3348:20
(lldb) bt
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x18)
  * frame #0: 0x00007ffff711ce80 libgtk-3.so.0`_gtk_settings_get_screen(settings=0x0000000000000000) at gtksettings.c:3348:20
    frame #1: 0x00007ffff6ff09aa libgtk-3.so.0`gtk_css_value_icon_theme_compute(icon_theme=<unavailable>, property_id=<unavailable>, provider=<unavailable>, style=<unavailable>, parent_style=<unavailable>) at gtkcssiconthemevalue.c:84:48
    frame #2: 0x00007ffff70133a7 libgtk-3.so.0`_gtk_css_value_compute(value=<unavailable>, property_id=<unavailable>, provider=<unavailable>, style=<unavailable>, parent_style=<unavailable>) at gtkcssvalue.c:97:10
    frame #3: 0x00007ffff6ff92b2 libgtk-3.so.0`gtk_css_value_initial_compute(value=<unavailable>, property_id=3, provider=0x0000000000000000, style=0x000010d49974c0a0, parent_style=0x0000000000000000) at gtkcssinitialvalue.c:73:10
    frame #4: 0x00007ffff70133a7 libgtk-3.so.0`_gtk_css_value_compute(value=<unavailable>, property_id=<unavailable>, provider=<unavailable>, style=<unavailable>, parent_style=<unavailable>) at gtkcssvalue.c:97:10
    frame #5: 0x00007ffff6ff915d libgtk-3.so.0`gtk_css_value_inherit_compute(value=<unavailable>, property_id=3, provider=<unavailable>, style=<unavailable>, parent_style=<unavailable>) at gtkcssinheritvalue.c:49:14
    frame #6: 0x00007ffff70133a7 libgtk-3.so.0`_gtk_css_value_compute(value=<unavailable>, property_id=<unavailable>, provider=<unavailable>, style=<unavailable>, parent_style=<unavailable>) at gtkcssvalue.c:97:10
    frame #7: 0x00007ffff700c094 libgtk-3.so.0`gtk_css_static_style_compute_value(style=0x000010d49974c0a0, provider=0x0000000000000000, parent_style=0x0000000000000000, id=3, specified=0x00007ffff722c230, section=0x0000000000000000) at gtkcssstaticstyle.c:237:11
    frame #8: 0x00007ffff6ffa428 libgtk-3.so.0`_gtk_css_lookup_resolve(lookup=0x000010d4995ffe00, provider=0x0000000000000000, style=0x000010d49974c0a0, parent_style=0x0000000000000000) at gtkcsslookup.c:122:9
    frame #9: 0x00007ffff700bffa libgtk-3.so.0`gtk_css_static_style_new_compute(provider=0x0000000000000000, matcher=<unavailable>, parent=0x0000000000000000) at gtkcssstaticstyle.c:195:3
    frame #10: 0x00007ffff700bf5f libgtk-3.so.0`gtk_css_static_style_get_default at gtkcssstaticstyle.c:164:23
    frame #11: 0x00007ffff6ffba02 libgtk-3.so.0`gtk_css_node_init(cssnode=0x000010d49973d1b0) at gtkcssnode.c:667:34
    frame #12: 0x00007ffff7e4bfa5 libgobject-2.0.so.0`g_type_create_instance(type=<unavailable>) at gtype.c:1861:4
    frame #13: 0x00007ffff7e3cde1 libgobject-2.0.so.0`g_object_new_internal(class=0x000010d4995e3960, params=0x0000000000000000, n_params=0) at gobject.c:1937:24
    frame #14: 0x00007ffff7e3c838 libgobject-2.0.so.0`g_object_new_with_properties(object_type=18505292407456, n_properties=0, names=0x0000000000000000, values=0x0000000000000000) at gobject.c:2105:14
    frame #15: 0x00007ffff7e3c6a3 libgobject-2.0.so.0`g_object_new(object_type=<unavailable>, first_property_name=<unavailable>) at gobject.c:1777:12
    frame #16: 0x00007ffff7013608 libgtk-3.so.0`gtk_css_widget_node_new(widget=0x000010d499748480) at gtkcsswidgetnode.c:297:12
    frame #17: 0x00007ffff71bcb5f libgtk-3.so.0`gtk_widget_init(instance=0x000010d499748480, g_class=0x000010d4995e1200) at gtkwidget.c:4468:19
    frame #18: 0x00007ffff7e4bfa5 libgobject-2.0.so.0`g_type_create_instance(type=<unavailable>) at gtype.c:1861:4
    frame #19: 0x00007ffff7e3cde1 libgobject-2.0.so.0`g_object_new_internal(class=0x000010d4995e1200, params=0x00007fffffffcbe0, n_params=1) at gobject.c:1937:24
    frame #20: 0x00007ffff7e3cbf8 libgobject-2.0.so.0`g_object_new_valist(object_type=<unavailable>, first_property_name=<unavailable>, var_args=<unavailable>) at gobject.c:2262:16
    frame #21: 0x00007ffff7e3c690 libgobject-2.0.so.0`g_object_new(object_type=<unavailable>, first_property_name=<unavailable>) at gobject.c:1780:12
    frame #22: 0x00007ffff6f7e644 libgtk-3.so.0`gtk_inspector_window_new at window.c:321:10
    frame #23: 0x00007ffff71d769b libgtk-3.so.0`gtk_window_set_debugging(enable=1, select=0, warn=0) at gtkwindow.c:12767:26
    frame #24: 0x00007ffff71d766a libgtk-3.so.0`gtk_window_set_interactive_debugging(enable=<unavailable>) at gtkwindow.c:12830:3
    frame #25: 0x00007ffff709ef3c libgtk-3.so.0`gtk_init_check(argc=<unavailable>, argv=<unavailable>) at gtkmain.c:1112:5
    frame #26: 0x00007ffff709ef46 libgtk-3.so.0`gtk_init(argc=<unavailable>, argv=<unavailable>) at gtkmain.c:1166:8
    frame #27: 0x000055555e380106 electron`___lldb_unnamed_symbol405691$$electron + 150
    frame #28: 0x000055555e376ad2 electron`___lldb_unnamed_symbol405583$$electron + 866
    frame #29: 0x000055555e37be7b electron`___lldb_unnamed_symbol405643$$electron + 27
    frame #30: 0x00005555581a837a electron`___lldb_unnamed_symbol4472$$electron + 106
    frame #31: 0x0000555559d62beb electron`___lldb_unnamed_symbol95227$$electron + 187
    frame #32: 0x0000555559d67068 electron`___lldb_unnamed_symbol95278$$electron + 648
    frame #33: 0x0000555559d623a6 electron`___lldb_unnamed_symbol95219$$electron + 182
    frame #34: 0x0000555559be82a4 electron`___lldb_unnamed_symbol89107$$electron + 692
    frame #35: 0x0000555559be7fc3 electron`___lldb_unnamed_symbol89106$$electron + 323
    frame #36: 0x000055555bc73201 electron`___lldb_unnamed_symbol226506$$electron + 3761
    frame #37: 0x0000555558d32ffe electron`___lldb_unnamed_symbol54351$$electron + 142
    frame #38: 0x00005555580edcc2 electron`___lldb_unnamed_symbol3$$electron + 450
    frame #39: 0x00007ffff39cae1b libc.so.6`__libc_start_main + 235
    frame #40: 0x00005555580eda6a electron`_start + 42

Saya tidak pernah menemukan kesalahan spesifik itu. Apakah Anda dapat menjalankan Chromium ozone/x11 di env Anda? Karena sedang dalam pengembangan yang berat, akan menarik untuk memeriksa versi terbaru . Jika ya, itu mungkin sesuatu yang spesifik elektron dalam inisialisasi gtk/ozon. Saya juga akan melihat masalah/perbaikan yang dilaporkan oleh pengguna lain beberapa komentar di atas :point_up:. Beberapa dari mereka mengamati peningkatan stabilitas di sebagian besar versi terbaru.

_Sebagai bidikan dalam kegelapan, ini mungkin terkait dengan masalah ini , yang di env saya dulu menyebabkan crash hanya ketika mencoba membuka dialog gtk, bukan saat startup._

@nickdiego Saya kira itu karena mereka menggunakan saluran stabil, yang dalam kasus mereka adalah ""80.0.3987.163"". Ini tidak dapat diandalkan dalam kasus Ozone/X11/Wayland karena ada perubahan terus-menerus pada bagasi.

Saya mencoba membangun chromium-83.0.4103.15, ini berfungsi di wayland, dan saya perlu chromium --ozone-platform=x11 untuk berjalan di X.
Tetapi elektron tidak dapat diluncurkan pada X:

$ ./electron --ozone-platform=x11

Electron 8.2.3 - Build cross platform desktop apps with JavaScript, HTML, and CSS
Usage: electron [options] [path]

A path to an Electron app may be specified. It must be one of the following:
  - index.js file.
  - Folder containing a package.json file.
  - Folder containing an index.js file.
  - .html/.htm file.
  - http://, https://, or file:// URL.

Options:
  -i, --interactive     Open a REPL to the main process.
  -r, --require         Module to preload (option can be repeated).
  -v, --version         Print the version.
  -a, --abi             Print the Node ABI version.
Received signal 11 SEGV_MAPERR 000000000000
#0 0x55b9f7eadf19 <unknown>
#1 0x55b9f7de0243 <unknown>
#2 0x55b9f7eadad2 <unknown>
#3 0x7fa643ba4160 <unknown>
#4 0x55b9f898ad06 <unknown>
#5 0x55b9f609f3a8 <unknown>
#6 0x55b9f91f07de <unknown>
#7 0x55b9f8dc5f09 <unknown>
#8 0x55b9fae0172b <unknown>
#9 0x55b9fae33d70 <unknown>
#10 0x55b9fae3211f <unknown>
#11 0x55b9fadfd418 <unknown>
#12 0x55b9f599a0c0 <unknown>
#13 0x55b9f599c0bb <unknown>
#14 0x55b9f592558b <unknown>
#15 0x55b9f58dffc9 <unknown>
#16 0x55b9f58e1b63 <unknown>
#17 0x55b9f58dd422 <unknown>
#18 0x55b9f58dd166 <unknown>
#19 0x55b9f58dd313 <unknown>
#20 0x55b9f6706782 <unknown>
#21 0x55b9f670589e <unknown>
#22 0x55b9f670513e <unknown>
#23 0x55b9f711dbf9 <unknown>
  r8: 0000000000000000  r9: 000000000606ece8 r10: 0000000000000018 r11: 002fc8b7156f8000
 r12: 00001497d4b9b180 r13: 00001497d4dfea80 r14: 00001497d515f510 r15: 00007fff79d10f80
  di: 00001497d531c634  si: 0000000000000001  bp: 00007fff79d10f10  bx: 00001497d515f480
  dx: 0000000000000010  ax: 0000000000000000  cx: 000055b9fc042fc8  sp: 00007fff79d10ef0
  ip: 000055b9f898ad06 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004
 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

@msisov Ya, itu masuk akal.

Saya mencoba membangun chromium-83.0.4103.15, ini berfungsi di wayland, dan saya perlu chromium --ozone-platform=x11 untuk berjalan di X.
Tetapi elektron tidak dapat diluncurkan pada X:

Jadi, tampaknya ada beberapa masalah khusus elektron dalam inisialisasi Gtk/Ozon. Adakah yang bisa mengkonfirmasi masalah ini di pengaturan lain? Maaf, tetapi saat ini saya tidak punya waktu untuk memeriksanya (bahkan tidak memiliki build elektron lokal).

Apakah saya perlu mengubah ozone_auto_platforms menjadi true?

Saat ini ozone_auto_platforms baru saja menetapkan x11 sebagai backend default, karena kami masih belum memiliki deteksi otomatis platform di desktop Linux.

Saya membangun elektron 8.2.3 dengan CXXFLAGS= -O1 -g , dan mendapatkan backtrace dengan kode sumber:

$ lldb ./electron
(lldb) target create "./electron"
Current executable set to '/data/tmp/portage/dev-util/electron-8.2.3/image/usr/lib/electron-8/electron' (x86_64).
(lldb) r --ozone-platform=x11
Process 823 launched: '/data/tmp/portage/dev-util/electron-8.2.3/image/usr/lib/electron-8/electron' (x86_64)
Process 823 stopped and restarted: thread 1 received signal: SIGCHLD

Electron 8.2.3 - Build cross platform desktop apps with JavaScript, HTML, and CSS
Usage: electron [options] [path]

A path to an Electron app may be specified. It must be one of the following:
  - index.js file.
  - Folder containing a package.json file.
  - Folder containing an index.js file.
  - .html/.htm file.
  - http://, https://, or file:// URL.

Options:
  -i, --interactive     Open a REPL to the main process.
  -r, --require         Module to preload (option can be repeated).
  -v, --version         Print the version.
  -a, --abi             Print the Node ABI version.
Process 823 stopped
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x00005555636e2a11 electron`ui::InputMethodAuraLinux::InputMethodAuraLinux(this=0x000055556836a480, delegate=<unavailable>) at input_method_auralinux.cc:35:51
   32         << "Trying to initialize InputMethodAuraLinux, but "
   33            "LinuxInputMethodContextFactory is not initialized yet.";
   34     context_ =
-> 35         LinuxInputMethodContextFactory::instance()->CreateInputMethodContext(
   36             this, false);
   37     context_simple_ =
   38         LinuxInputMethodContextFactory::instance()->CreateInputMethodContext(
(lldb) bt
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x00005555636e2a11 electron`ui::InputMethodAuraLinux::InputMethodAuraLinux(this=0x000055556836a480, delegate=<unavailable>) at input_method_auralinux.cc:35:51
    frame #1: 0x000055555e778750 electron`std::__1::__unique_if<ui::InputMethodAuraLinux>::__unique_single std::__1::make_unique<ui::InputMethodAuraLinux, ui::internal::InputMethodDelegate*&>(__args=<unavailable>) at memory:3028:32
    frame #2: 0x000055555e79d9b2 electron`ui::(anonymous namespace)::OzonePlatformX11::CreateInputMethod(this=<unavailable>, delegate=0x0000555568501020) at ozone_platform_x11.cc:115:12
    frame #3: 0x0000555564241a20 electron`ui::CreateInputMethod(delegate=<unavailable>, widget=<unavailable>) at input_method_factory.cc:69:44
    frame #4: 0x0000555563be4da2 electron`aura::WindowTreeHost::GetInputMethod(this=0x0000555568501020) at window_tree_host.cc:276:9
    frame #5: 0x00005555665a0f53 electron`views::DesktopNativeWidgetAura::GetInputMethod(this=0x0000555568507240) at desktop_native_widget_aura.cc:693:27
    frame #6: 0x0000555566558db6 electron`views::Widget::GetInputMethod(this=0x0000555568369c80) at widget.cc:814:37
    frame #7: 0x000055556655a26b electron`views::Widget::OnNativeWidgetSizeChanged(this=0x0000555568369c80, new_size=0x00007fffffffb4a8) at widget.cc:1202:28
    frame #8: 0x00005555665a2343 electron`views::DesktopNativeWidgetAura::OnHostResized(this=<unavailable>, host=<unavailable>) at desktop_native_widget_aura.cc:1250:28
    frame #9: 0x00005555665a0858 electron`views::DesktopNativeWidgetAura::InitNativeWidget(this=0x0000555568507240, params=InitParams @ 0x00007fffffffb540) at desktop_native_widget_aura.cc:552:3
    frame #10: 0x000055556655766a electron`views::Widget::Init(this=0x0000555568369c80, params=InitParams @ 0x00007fffffffb958) at widget.cc:353:19
    frame #11: 0x000055555dc7f316 electron`electron::NativeWindowViews::NativeWindowViews(this=0x000055556843ae20, options=<unavailable>, parent=<unavailable>) at native_window_views.cc:206:13
    frame #12: 0x000055555dc8116b electron`electron::NativeWindow::Create(options=<unavailable>, parent=<unavailable>) at native_window_views.cc:1484:14
    frame #13: 0x000055555db98cb7 electron`electron::api::TopLevelWindow::TopLevelWindow(this=<unavailable>, isolate=0x00005555687a28c0, options=0x00007fffffffbde0) at electron_api_top_level_window.cc:96:17
    frame #14: 0x000055555db11647 electron`electron::api::BrowserWindow::BrowserWindow(this=0x00005555685f32a0, args=0x00007fffffffbf20, options=0x00007fffffffbde0) at electron_api_browser_window.cc:34:7
    frame #15: 0x000055555db12e32 electron`electron::api::BrowserWindow::New(thrower=<unavailable>, args=0x00007fffffffbf20) at electron_api_browser_window.cc:464:14
    frame #16: 0x000055555db09d7c electron`mate::WrappableBase* base::internal::FunctorTraits<mate::WrappableBase* (*)(gin_helper::ErrorThrower, gin::Arguments*), void>::Invoke<mate::WrappableBase* (function=<unavailable>, args=<unavailable>, args=<unavailable>)(gin_helper::ErrorThrower, gin::Arguments*), gin_helper::ErrorThrower, gin::Arguments*>(mate::WrappableBase* (* const&)(gin_helper::ErrorThrower, gin::Arguments*), gin_helper::ErrorThrower&&, gin::Arguments*&&) at bind_internal.h:398:12
    frame #17: 0x000055555db09d19 electron`mate::WrappableBase* base::internal::InvokeHelper<false, mate::WrappableBase*>::MakeItSo<mate::WrappableBase* (functor=<unavailable>, args=<unavailable>, args=<unavailable>)(gin_helper::ErrorThrower, gin::Arguments*), gin_helper::ErrorThrower, gin::Arguments*>(mate::WrappableBase* (* const&)(gin_helper::ErrorThrower, gin::Arguments*), gin_helper::ErrorThrower&&, gin::Arguments*&&) at bind_internal.h:598:12
    frame #18: 0x000055555db09cc9 electron`mate::WrappableBase* base::internal::Invoker<base::internal::BindState<mate::WrappableBase* (*)(gin_helper::ErrorThrower, gin::Arguments*)>, mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)>::RunImpl<mate::WrappableBase* (functor=<unavailable>, bound=<unavailable>, (null)=<unavailable>, unbound_args=<unavailable>, unbound_args=<unavailable>)(gin_helper::ErrorThrower, gin::Arguments*), std::__1::tuple<> const&>(mate::WrappableBase* (* const&)(gin_helper::ErrorThrower, gin::Arguments*), std::__1::tuple<> const&, std::__1::integer_sequence<unsigned long>, gin_helper::ErrorThrower&&, gin::Arguments*&&) at bind_internal.h:671:12
    frame #19: 0x000055555db09c7b electron`base::internal::Invoker<base::internal::BindState<mate::WrappableBase* (*)(gin_helper::ErrorThrower, gin::Arguments*)>, mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)>::Run(base=<unavailable>, unbound_args=<unavailable>, unbound_args=0x00007fffffffbf20) at bind_internal.h:653:12
    frame #20: 0x000055555db09b5c electron`base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)>::Run(this=<unavailable>, args=<unavailable>, args=0x00007fffffffbf20) const & at callback.h:132:12
    frame #21: 0x000055555db09a77 electron`mate::WrappableBase* mate::internal::InvokeFactory<gin_helper::ErrorThrower, gin::Arguments*>(args=<unavailable>, callback=0x000055556829ba68)> const&) at constructor.h:50:19
    frame #22: 0x000055555db09145 electron`void mate::internal::InvokeNew<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)>(factory=0x000055556829ba68, isolate=0x00005555687a28c0, args=0x00007fffffffc1c0)> const&, v8::Isolate*, mate::Arguments*) at constructor.h:143:14
    frame #23: 0x000055555db09829 electron`void base::internal::FunctorTraits<void (*)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), void>::Invoke<void (function=<unavailable>, args=<unavailable>, args=<unavailable>, args=<unavailable>)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*>(void (* const&)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*&&, mate::Arguments*&&) at bind_internal.h:398:12
    frame #24: 0x000055555db0977e electron`void base::internal::InvokeHelper<false, void>::MakeItSo<void (functor=<unavailable>, args=<unavailable>, args=<unavailable>, args=<unavailable>)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*>(void (* const&)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*&&, mate::Arguments*&&) at bind_internal.h:598:12
    frame #25: 0x000055555db0971e electron`void base::internal::Invoker<base::internal::BindState<void (*)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> >, void (v8::Isolate*, mate::Arguments*)>::RunImpl<void (functor=<unavailable>, bound=<unavailable>, (null)=<unavailable>, unbound_args=<unavailable>, unbound_args=<unavailable>)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), std::__1::tuple<base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> > const&, 0ul>(void (* const&)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), std::__1::tuple<base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> > const&, std::__1::integer_sequence<unsigned long, 0ul>, v8::Isolate*&&, mate::Arguments*&&) at bind_internal.h:671:12
    frame #26: 0x000055555db096b3 electron`base::internal::Invoker<base::internal::BindState<void (*)(base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> const&, v8::Isolate*, mate::Arguments*), base::RepeatingCallback<mate::WrappableBase* (gin_helper::ErrorThrower, gin::Arguments*)> >, void (v8::Isolate*, mate::Arguments*)>::Run(base=<unavailable>, unbound_args=0x00005555687a28c0, unbound_args=0x00007fffffffc1c0) at bind_internal.h:653:12
    frame #27: 0x000055555db0951c electron`base::RepeatingCallback<void (v8::Isolate*, mate::Arguments*)>::Run(this=<unavailable>, args=0x00005555687a28c0, args=0x00007fffffffc1c0) const & at callback.h:132:12
    frame #28: 0x000055555db0944c electron`mate::internal::Invoker<mate::internal::IndicesHolder<0ul, 1ul>, v8::Isolate*, mate::Arguments*>::DispatchToCallback(this=<unavailable>, callback=<unavailable>)>) at function_template.h:209:14
    frame #29: 0x000055555db092d8 electron`mate::internal::Dispatcher<void (v8::Isolate*, mate::Arguments*)>::DispatchToCallback(info=<unavailable>) at function_template.h:243:15
    frame #30: 0x000055555f8d3095 electron`v8::internal::FunctionCallbackArguments::Call(this=0x00007fffffffc3c0, handler=CallHandlerInfo @ 0x00007fffffffc270) at api-arguments-inl.h:158:3
    frame #31: 0x000055555f8d19e3 electron`v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<true>(isolate=<unavailable>, function=<unavailable>, new_target=<unavailable>, fun_data=<unavailable>, receiver=<unavailable>, args=BuiltinArguments @ 0x00007fffffffc490) at builtins-api.cc:111:36
    frame #32: 0x000055555f8d0d58 electron`v8::internal::Builtin_Impl_HandleApiCall(args=BuiltinArguments @ 0x00007fffffffc4d0, isolate=0x00005555687a28c0) at builtins-api.cc:137:5
    frame #33: 0x000055555f8d09a9 electron`v8::internal::Builtin_HandleApiCall(args_length=6, args_object=0x00007fffffffc5d0, isolate=0x00005555687a28c0) at builtins-api.cc:129:1
    frame #34: 0x00005555605fbf39 electron`Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 57
    frame #35: 0x00005555605876a1 electron`Builtins_JSBuiltinsConstructStub + 97
    frame #36: 0x0000555560673fdb electron`Builtins_ConstructHandler + 187
    frame #37: 0x000055556058b9d8 electron`Builtins_InterpreterEntryTrampoline + 184
    frame #38: 0x00005555605b9b10 electron`Builtins_AsyncFunctionAwaitResolveClosure + 48
    frame #39: 0x00005555605db2f2 electron`Builtins_PromiseFulfillReactionJob + 50
    frame #40: 0x00005555605ab888 electron`Builtins_RunMicrotasks + 552
    frame #41: 0x0000555560589238 electron`Builtins_JSRunMicrotasksEntry + 120
    frame #42: 0x000055555f9f0200 electron`v8::internal::GeneratedCode<unsigned long, unsigned long, v8::internal::MicrotaskQueue*>::Call(this=<unavailable>, args=<unavailable>, args=<unavailable>) at simulator.h:142:12
    frame #43: 0x000055555f9eef4d electron`v8::internal::(anonymous namespace)::Invoke(isolate=0x00005555687a28c0, params=0x00007fffffffca18)::InvokeParams const&) at execution.cc:281:33
    frame #44: 0x000055555f9ef895 electron`v8::internal::(anonymous namespace)::InvokeWithTryCatch(isolate=0x00005555687a28c0, params=0x00007fffffffca18)::InvokeParams const&) at execution.cc:326:20
    frame #45: 0x000055555f9efa6e electron`v8::internal::Execution::TryRunMicrotasks(isolate=0x00005555687a28c0, microtask_queue=<unavailable>, exception_out=<unavailable>) at execution.cc:405:10
    frame #46: 0x000055555fa25acf electron`v8::internal::MicrotaskQueue::RunMicrotasks(this=0x0000555568435180, isolate=0x00005555687a28c0) at microtask-queue.cc:164:22
    frame #47: 0x000055555fa25839 electron`v8::internal::MicrotaskQueue::PerformCheckpoint(this=0x0000555568435180, v8_isolate=0x00005555687a28c0) at microtask-queue.cc:117:5
    frame #48: 0x000055555f862819 electron`v8::MicrotasksScope::PerformCheckpoint(v8_isolate=0x00005555687a28c0) at api.cc:9202:20
    frame #49: 0x000055555dc7a645 electron`electron::MicrotasksRunner::DidProcessTask(this=0x00005555682dbde0, pending_task=<unavailable>) at microtasks_runner.cc:18:3
    frame #50: 0x00005555627ca874 electron`base::sequence_manager::internal::SequenceManagerImpl::NotifyDidProcessTask(this=<unavailable>, executing_task=0x00007fffef864360, time_after_task=<unavailable>) at sequence_manager_impl.cc:867:16
    frame #51: 0x00005555627ca4ab electron`base::sequence_manager::internal::SequenceManagerImpl::DidRunTask(this=0x000055556803cde0) at sequence_manager_impl.cc:678:3
    frame #52: 0x00005555627e576e electron`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(this=<unavailable>, continuation_lazy_now=0x00007fffffffce60, ran_task=0x00007fffffffceaf) at thread_controller_with_message_pump_impl.cc:378:37
    frame #53: 0x00005555627e5436 electron`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork(this=0x00007fffef85d9e0) at thread_controller_with_message_pump_impl.cc:219:7
    frame #54: 0x00005555627560c7 electron`base::MessagePumpGlib::Run(this=0x00007ffff1e89f20, delegate=<unavailable>) at message_pump_glib.cc:441:48
    frame #55: 0x00005555627e5e31 electron`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(this=0x00007fffef85d9e0, application_tasks_allowed=true, timeout=(delta_ = 9223372036854775807)) at thread_controller_with_message_pump_impl.cc:463:12
    frame #56: 0x00005555627944c0 electron`base::RunLoop::Run(this=0x00007fffffffd060) at run_loop.cc:156:14
    frame #57: 0x0000555560c83a78 electron`content::BrowserMainLoop::MainMessageLoopRun(this=<unavailable>) at browser_main_loop.cc:1535:12
    frame #58: 0x0000555560c838b8 electron`content::BrowserMainLoop::RunMainMessageLoopParts(this=0x00005555680e2360) at browser_main_loop.cc:1062:5
    frame #59: 0x0000555560c8babd electron`content::BrowserMainRunnerImpl::Run(this=<unavailable>) at browser_main_runner_impl.cc:150:15
    frame #60: 0x0000555560c80f42 electron`content::BrowserMain(parameters=<unavailable>) at browser_main.cc:47:28
    frame #61: 0x00005555609b97db electron`content::RunBrowserProcessMain(main_function_params=0x00007fffffffd2e0, delegate=<unavailable>) at content_main_runner_impl.cc:527:10
    frame #62: 0x00005555609ba399 electron`content::ContentMainRunnerImpl::RunServiceManager(this=0x00007fffef922160, main_params=<unavailable>, start_service_manager_only=<unavailable>) at content_main_runner_impl.cc:960:10
    frame #63: 0x00005555609ba0db electron`content::ContentMainRunnerImpl::Run(this=0x00007fffef922160, start_service_manager_only=false) at content_main_runner_impl.cc:868:12
    frame #64: 0x000055555f24461f electron`content::ContentServiceManagerMainDelegate::RunEmbedderProcess(this=0x00007fffffffd5c0) at content_service_manager_main_delegate.cc:52:32
    frame #65: 0x00005555645ce0f3 electron`service_manager::Main(params=<unavailable>) at main.cc:423:29
    frame #66: 0x000055555f2469be electron`content::ContentMain(params=0x00007fffffffd660) at content_main.cc:19:10
    frame #67: 0x000055555dac9ffa electron`main(argc=2, argv=0x00007fffffffd768) at electron_main.cc:189:10

Saya pikir https://github.com/chromium/chromium/commit/182d586fee5b5f9053b5702fcfc847f18ea5ec79 akan memperbaiki ini dan saya akan mencoba mem-backport perbaikan ini ke chromium 80
Sunting: ada kerusakan lain setelah menerapkan tambalan ini

$ lldb ./electron
(lldb) target create "./electron"
Current executable set to '/data/tmp/portage/dev-util/electron-8.2.3/image/usr/lib/electron-8/electron' (x86_64).
(lldb) r --ozone-platform=x11
Process 15986 launched: '/data/tmp/portage/dev-util/electron-8.2.3/image/usr/lib/electron-8/electron' (x86_64)
Process 15986 stopped and restarted: thread 1 received signal: SIGCHLD

Electron 8.2.3 - Build cross platform desktop apps with JavaScript, HTML, and CSS
Usage: electron [options] [path]

A path to an Electron app may be specified. It must be one of the following:
  - index.js file.
  - Folder containing a package.json file.
  - Folder containing an index.js file.
  - .html/.htm file.
  - http://, https://, or file:// URL.

Options:
  -i, --interactive     Open a REPL to the main process.
  -r, --require         Module to preload (option can be repeated).
  -v, --version         Print the version.
  -a, --abi             Print the Node ABI version.
Process 15986 stopped
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x00005555665a03f4 electron`views::DesktopNativeWidgetAura::HandleActivationChanged(this=0x00005555683a9840, active=true) at desktop_native_widget_aura.cc:417:25
   414            view_for_activation->GetWidget()->GetNativeView());
   415        // Refreshes the focus info to IMF in case that IMF cached the old info
   416        // about focused text input client when it was "inactive".
-> 417        GetInputMethod()->OnFocus();
   418      }
   419    } else {
   420      // TODO(nektar): We need to harmonize the firing of accessibility
(lldb) bt
* thread #1, name = 'electron', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x00005555665a03f4 electron`views::DesktopNativeWidgetAura::HandleActivationChanged(this=0x00005555683a9840, active=true) at desktop_native_widget_aura.cc:417:25
    frame #1: 0x00005555665b82f5 electron`views::DesktopWindowTreeHostPlatform::OnActivationChanged(this=0x000055556834c400, active=<unavailable>) at desktop_window_tree_host_platform.cc:688:32
    frame #2: 0x00005555665abbd2 electron`views::DesktopWindowTreeHostLinux::OnActivationChanged(this=0x000055556834c400, active=true) at desktop_window_tree_host_linux.cc:291:34
    frame #3: 0x00005555636f2301 electron`ui::X11Window::OnXWindowIsActiveChanged(this=<unavailable>, active=<unavailable>) at x11_window.cc:607:30
    frame #4: 0x000055556353e8c6 electron`ui::XWindow::AfterActivationStateChanged(this=0x0000555568789e28) at x11_window.cc:923:5
    frame #5: 0x000055556353fa94 electron`ui::XWindow::OnFocusEvent(this=0x0000555568789e28, focus_in=<unavailable>, mode=<unavailable>, detail=3) at x11_window.cc:1040:3
    frame #6: 0x000055556353fc3c electron`ui::XWindow::ProcessEvent(this=0x0000555568789e28, xev=0x00007fffffffccc0) at x11_window.cc:1145:7
    frame #7: 0x000055555e7a8b98 electron`ui::X11WindowOzone::DispatchXEvent(this=<unavailable>, xev=0x00007fffffffccc0) at x11_window_ozone.cc:66:12
    frame #8: 0x00005555635c8ad3 electron`ui::X11EventSourceDefault::DispatchXEventToXEventDispatchers(this=0x00005555683a5c40, xevent=0x00007fffffffccc0) at x11_event_source_default.cc:136:22
    frame #9: 0x00005555635c8772 electron`ui::X11EventSourceDefault::ProcessXEvent(this=0x00005555683a5c40, xevent=0x00007fffffffccc0) at x11_event_source_default.cc:90:5
    frame #10: 0x00005555635c226c electron`ui::X11EventSource::ExtractCookieDataDispatchEvent(this=0x00005555683a5cc8, xevent=0x00007fffffffccc0) at x11_event_source.cc:273:14
    frame #11: 0x00005555635c2211 electron`ui::X11EventSource::DispatchXEvents(this=0x00005555683a5cc8) at x11_event_source.cc:140:5
    frame #12: 0x00005555635c8c70 electron`ui::X11EventSourceDefault::OnFileCanReadWithoutBlocking(this=<unavailable>, fd=<unavailable>) at x11_event_source_default.cc:165:17
    frame #13: 0x0000555562755f92 electron`base::MessagePumpGlib::FdWatchController::NotifyCanRead(this=<unavailable>) at message_pump_glib.cc:333:13
    frame #14: 0x000055556275634f electron`base::MessagePumpGlib::HandleFdWatchDispatch(this=<unavailable>, controller=0x00005555683a5d50) at message_pump_glib.cc:502:17
    frame #15: 0x00005555627564bd electron`base::(anonymous namespace)::FdWatchSourceDispatch(gsource=<unavailable>, unused_func=<unavailable>, unused_data=<unavailable>)(void*), void*) at message_pump_glib.cc:194:17
    frame #16: 0x00007ffff7e4d585

Adakah yang tahu cara mengkompilasi elektron untuk mendukung wayland native? (langkah demi langkah) Dan jalankan aplikasi elektron di wayland (weston dll...).
Butuh berjam-jam untuk mengkompilasi elektron dan saya gagal berkali-kali.

@caijw , Anda mungkin bukan pengguna utama, tetapi Anda mungkin melihat PKGBUILD untuk elektron-ozon untuk petunjuk membangunnya. Pemahaman saya adalah bahwa itu masih sangat eksperimental.

vscode akan melewatkan elektron 8 dan menggunakan elektron 9 di versi berikutnya, yang didasarkan pada chromium 83 dan bekerja sangat stabil dengan ozon-wayland dan ozon-x11. Tetapi elektron 9 masih membutuhkan beberapa tambalan untuk dikompilasi dengan ozon

Bendera ozon bawaan Chromium sedang dalam perjalanan https://bugs.chromium.org/p/chromium/issues/detail?id=1085700

Ini adalah upaya WIP saya untuk rebase cabang elektron wayland saya di v9.xx: https://github.com/electron/electron/compare/9-xy...hedgepigdaniel :arch-9?expand=1

Saat ini cukup baik untuk menjalankan electron-quick-start , tetapi tidak banyak lagi. Paling sering gejalanya adalah jendela tidak muncul.

Saya juga telah memperbarui https://aur.archlinux.org/packages/electron-ozone/

Saya akan menerima bantuan jika ada yang bisa mencari tahu apa yang salah - jangan ragu untuk membuat PR untuk garpu saya. Juga jangan ragu untuk mengambil tambalan saya dan mengubahnya menjadi sesuatu yang dipoles/dapat digabungkan - saya tidak punya waktu untuk melakukan semuanya sendiri.

Terima kasih untuk Anda patch @hedgepigdaniel.
Saya telah mengkompilasinya dan menemukan beberapa masalah:

  1. Tidak dapat menutup jendela ( yang disebutkan dalam AUR )
  2. jalankan electron-9 --ozone-platform=wayland tetapi jendela tidak muncul. electron-9 --ozone-platform=x11 bekerja tanpa masalah
  3. vscode membutuhkan variabel lingkungan ELECTRON_RUN_AS_NODE=1 untuk diluncurkan, tetapi ELECTRON_RUN_AS_NODE=1 electron-9 --ozone-platform=x11 mendapat kesalahan: electron-9: bad option: --ozone-platform=x11
  4. Seret dan lepas tidak berfungsi (misalnya: file explorer atau tab di vscode)

图片

Saya melakukan beberapa pengujian lagi menggunakan paket arch,

Ini berfungsi, tanpa jendela kosong atau apa pun. Masalah utama yang saya temukan adalah jika Anda menggulir menggunakan roda mouse di dalam menu aplikasi, semua jendela akan hilang. Saya pikir bug ini telah diperbaiki di versi chromium yang lebih baru.

@hedgepigdaniel Saya pikir tambalan Anda di Electron benar-benar baik untuk dimasukkan di hulu, apakah Anda tertarik membuat PR untuk menggabungkan perubahan ke cabang master?

Adakah yang punya file build Ubuntu? Saya terbuka untuk membantu memperbaiki bug Wayland :)
Ada yang tau btw. komponen mana yang merusak dukungan seret dan lepas? Kromium, ozon, elektron atau vscode?

@hedgepigdaniel apa masalahnya dengan menutup jendela dan menu? apa saja yang bisa saya mulai jika saya ingin memperbaikinya?

@ninja- Seret dan lepas tidak berfungsi pada Chromium di Linux, jadi menurut saya ini bukan bug elektron atau vscode.

@ninja- Seret dan lepas tidak berfungsi pada Chromium di Linux, jadi menurut saya ini bukan bug elektron atau vscode.

@WhyNotHugo Versi (atau head commit) Chromium Ozone/Wayland mana yang Anda gunakan? Saya memiliki batang baru dan DnD bekerja dengan cukup baik.

Saya menggunakan Chromium 85.0.4183.83, tetapi bukan versi Ozon. Saya tidak memiliki sumber daya untuk membangun versi Ozon dari sumber.

@WhyNotHugo kami punya kabar baik untuk Anda :) Ozon dibangun secara default untuk Chromium sekarang (menggabungkan tambalan untuk ketiga kalinya hari ini ). Segera, itu akan menjadi bagian dari rilis dev chrome juga.

https://chromium-review.googlesource.com/c/chromium/src/+/2382834

Padahal, tambalan dapat dikembalikan lagi. kita harus menunggu beberapa hari sampai menempel.

Saya mencoba membangun kromium dengan ozon dari awal sebulan yang lalu dan itu benar-benar berantakan:/tidak bisa dikompilasi

@nickdiego apakah masalah penutupan jendela juga diperbaiki?

@ninja- Saya sangat terkejut dan menyesal pada saat yang sama bahwa Anda tidak dapat mengkompilasi ozon. Namun, kami, para pengembang, melakukannya setiap hari tanpa masalah.

Pedoman seperti apa yang Anda gunakan? Apakah Anda menyusun ozon dari hulu? Atau apakah Anda menggunakan beberapa resep pihak ketiga? Harap dicatat bahwa kami tidak bertanggung jawab untuk itu dan mereka sedang dalam pemeliharaan proyek hilir.

Saya menggunakan Chromium 85.0.4183.83, tetapi bukan versi Ozon. Saya tidak memiliki sumber daya untuk membangun versi Ozon dari sumber.

Kena kau. Jadi Chromium X11/XWayland, dalam hal ini. Saya juga mengalami beberapa masalah dengan XWayland di bawah Sway :( misalnya: tab menyeret rusak total, dll.

@nickdiego apakah masalah penutupan jendela juga diperbaiki?

@ninja- Yang mana? Sudahkah Anda melaporkannya di crbug.com? Kami telah memperbaiki banyak bug baru-baru ini, beberapa di antaranya terkait dengan jendela sembulan.

@nickdiego Saya belum mengalami itu, hanya membaca dari komentar AUR itu, mengatakan bahwa itu adalah pemblokir utama

itu bekerja seperti pesona di sini. Electron wayland native memberi saya banyak kenyamanan, terima kasih (AUR + kompilasi ulang vscodium)

Sangat bersemangat di sini sebagai pengelola aplikasi Electron.

Apakah ini berarti pembangunan elektron di masa depan akan mendukung Wayland secara asli di luar kotak atau apakah saya harus melakukan sesuatu yang istimewa untuk aplikasi saya?

Anda semua luar biasa.

Saya baru-baru ini menguji Wayland dengan Gnome namun tidak ada bingkai di sekitar jendela.

@MyIsaak apakah Anda menggunakan dir data pengguna sebelumnya? Menurut saya jawabannya adalah ya. Apakah pengaturan chrome Anda disetel ke "menggunakan bilah judul dan batas sistem" dari direktori data lama Anda? Jika ya, itulah yang diharapkan, karena dukungan xdg-decoration sedang dalam proses.

@msisov Saya baru saja membangun kembali seluruh proyek dan masih memiliki hasil yang sama. Apakah saya perlu mengubah pengaturan chrome sebelum membangun karena saya hanya melakukannya setelah membangun?

Secara default, chromium akan mencoba menggunakan kembali direktori data pengguna yang ada.

Coba gunakan sesuatu yang kosong. Misalnya. - —user-data-dir=/tmp/bla

@msisov Ok itu berhasil beralih ke versi tanpa bingkai/tanpa batas, kecuali untuk menutup jendela (kecuali saya melakukan ALT+F4). VSCode juga bekerja dengan cara yang sama dengan menyetel "window.titleBarStyle": "custom" di settings.json . Terima kasih untuk bantuannya!

Saya mencoba master chromium dengan dukungan ozon dan menjalankannya di gnome Shell menghasilkan penggunaan cpu 100% selamanya dan chromium tidak dimulai :(
Ini dimulai dengan baik di barat :(

OS: Ubuntu 20.04

@ninja- , jalankan dengan WAYLAND_DEBUG=1 dan rekatkan log di sini. Mungkin terkait dengan https://crbug.com/1123382 . Perbaikan dalam perjalanan.

@msisov ya ini dia! Bisakah kamu btw. tangani kasing dengan benar ketika gnome Shell memutuskan koneksi wayland Anda? Karena saat ini hanya terus berputar eventfd dengan 100% cpu :/

[1894729.120]  -> [email protected]_registry(new id wl_registry@2)
[1894738.037]  -> [email protected](new id wl_callback@3)
[1894738.116] [email protected]_id(3)
[1894738.146] [email protected](1, "wl_drm", 2)
[1894738.160]  -> [email protected](1, "wl_drm", 2, new id [unknown]@4)
[1894738.181]  -> [email protected](new id wl_callback@5)
[1894738.186] [email protected](2, "wl_compositor", 4)
[1894738.195]  -> [email protected](2, "wl_compositor", 4, new id [unknown]@6)
[1894738.212] [email protected](3, "wl_shm", 1)
[1894738.218]  -> [email protected](3, "wl_shm", 1, new id [unknown]@7)
[1894738.231] [email protected](4, "wl_output", 2)
[1894738.242]  -> [email protected](4, "wl_output", 2, new id [unknown]@8)
[1894738.252] [email protected](5, "wl_output", 2)
[1894738.258]  -> [email protected](5, "wl_output", 2, new id [unknown]@9)
[1894738.275] [email protected](6, "zxdg_output_manager_v1", 3)
[1894738.282] [email protected](7, "wl_data_device_manager", 3)
[1894738.293]  -> [email protected](7, "wl_data_device_manager", 3, new id [unknown]@10)
[1894738.308] [email protected](8, "zwp_primary_selection_device_manager_v1", 1)
[1894738.319] [email protected](9, "gtk_primary_selection_device_manager", 1)
[1894738.328]  -> [email protected](9, "gtk_primary_selection_device_manager", 1, new id [unknown]@11)
[1894738.349] [email protected](10, "wl_subcompositor", 1)
[1894738.358]  -> [email protected](10, "wl_subcompositor", 1, new id [unknown]@12)
[1894738.370] [email protected](11, "xdg_wm_base", 3)
[1894738.382]  -> [email protected](11, "xdg_wm_base", 1, new id [unknown]@13)
[1894738.396] [email protected](12, "zxdg_shell_v6", 1)
[1894738.406]  -> [email protected](12, "zxdg_shell_v6", 1, new id [unknown]@14)
[1894738.418] [email protected](13, "wl_shell", 1)
[1894738.429] [email protected](14, "gtk_shell1", 3)
[1894738.438] [email protected](15, "wp_viewporter", 1)
[1894738.447] [email protected](16, "zwp_pointer_gestures_v1", 1)
[1894738.457] [email protected](17, "zwp_tablet_manager_v2", 1)
[1894738.465] [email protected](18, "wl_seat", 5)
[1894738.476]  -> [email protected](18, "wl_seat", 4, new id [unknown]@15)
[1894738.491]  -> [email protected]_data_device(new id wl_data_device<strong i="7">@16</strong>, wl_seat@15)
[1894738.510] [email protected](19, "zwp_relative_pointer_manager_v1", 1)
[1894738.520] [email protected](20, "zwp_pointer_constraints_v1", 1)
[1894738.531] [email protected](21, "zxdg_exporter_v1", 1)
[1894738.539] [email protected](22, "zxdg_importer_v1", 1)
[1894738.548] [email protected](23, "zwp_linux_dmabuf_v1", 3)
[1894738.559]  -> [email protected](23, "zwp_linux_dmabuf_v1", 3, new id [unknown]@17)
[1894738.573]  -> [email protected](new id wl_callback@18)
[1894738.579] [email protected](24, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[1894738.593] [email protected](25, "zwp_text_input_manager_v3", 1)
[1894738.604] [email protected](26, "gtk_text_input_manager", 1)
[1894738.618] [email protected](152130)
[1894738.728] [email protected]_id(5)
[1894738.732] [email protected]_id(18)
[1894738.737] [email protected]("/dev/dri/card0")
[1894738.903]  -> [email protected](4)
[1894738.908]  -> [email protected](new id wl_callback@3)
[1894738.914] [email protected](808669761)
[1894738.920] [email protected](808669784)
[1894738.925] [email protected](808665665)
[1894738.930] [email protected](808665688)
[1894738.932] [email protected](875713089)
[1894738.936] [email protected](875713112)
[1894738.940] [email protected](909199186)
[1894738.944] [email protected](961959257)
[1894738.948] [email protected](825316697)
[1894738.952] [email protected](842093913)
[1894738.955] [email protected](909202777)
[1894738.961] [email protected](875713881)
[1894738.965] [email protected](842094158)
[1894738.970] [email protected](909203022)
[1894738.976] [email protected](1448695129)
[1894738.981] [email protected](1)
[1894738.985] [email protected](152130)
[1894738.989] [email protected](1920, 0, 530, 300, 0, "DEL", "DELL P2419H", 0)
[1894739.009] [email protected](3, 1920, 1080, 60000)
[1894739.020] [email protected](1)
[1894739.024] [email protected]()
[1894739.028] [email protected](0, 0, 530, 300, 0, "DEL", "DELL P2419H", 0)
[1894739.046] [email protected](3, 1920, 1080, 60000)
[1894739.057] [email protected](1)
[1894739.060] [email protected]()
[1894739.064] [email protected](3)
[1894739.069]  -> [email protected]_pointer(new id wl_pointer@5)
[1894739.076]  -> [email protected]_surface(new id wl_surface@19)
[1894739.081]  -> [email protected]_keyboard(new id wl_keyboard@20)
[1894739.088] [email protected]("seat0")
[1894739.092] [email protected](875713089)
[1894739.096] [email protected](875713089, 16777215, 4294967295)
[1894739.107] [email protected](875713112)
[1894739.114] [email protected](875713112, 16777215, 4294967295)
[1894739.120] [email protected](808669761)
[1894739.124] [email protected](808669761, 16777215, 4294967295)
[1894739.134] [email protected](909199186)
[1894739.138] [email protected](909199186, 16777215, 4294967295)
[1894739.150] [email protected](152130)
[1894739.345] [email protected]_id(3)
[1894739.349] [email protected]()
[1894739.354] [email protected](152130)
[1894739.357] [email protected](1, fd 32, 54533)
[1894740.677] [email protected]_info(33, 500)
[1894773.934]  -> [email protected]_registry(new id wl_registry@2)
[1894773.945]  -> [email protected](new id wl_callback@3)
[1894773.990] [email protected]_id(3)
[1894773.994] [email protected](1, "wl_drm", 2)
[1894774.003] [email protected](2, "wl_compositor", 4)
[1894774.011]  -> [email protected](2, "wl_compositor", 3, new id [unknown]@4)
[1894774.022] [email protected](3, "wl_shm", 1)
[1894774.030]  -> [email protected](3, "wl_shm", 1, new id [unknown]@5)
[1894774.077]  -> [email protected]_pool(new id wl_shm_pool<strong i="8">@6</strong>, fd 38, 2304)
[1894774.189]  -> [email protected](6912)
[1894774.231]  -> [email protected](16128)
[1894774.296]  -> [email protected](34560)
[1894774.476]  -> [email protected](71424)
[1894774.738]  -> [email protected](145152)
[1894775.331]  -> [email protected](292608)
[1894776.011]  -> [email protected](587520)
[1894777.122]  -> [email protected](1177344)
[1894782.938] [email protected](4, "wl_output", 2)
[1894782.947]  -> [email protected](4, "wl_output", 2, new id [unknown]@7)
[1894782.983]  -> [email protected](new id wl_callback@8)
[1894782.988] [email protected](5, "wl_output", 2)
[1894782.995]  -> [email protected](5, "wl_output", 2, new id [unknown]@9)
[1894783.012]  -> [email protected](new id wl_callback@10)
[1894783.017] [email protected](6, "zxdg_output_manager_v1", 3)
[1894783.025]  -> [email protected](6, "zxdg_output_manager_v1", 3, new id [unknown]@11)
[1894783.041]  -> [email protected]_xdg_output(new id zxdg_output_v1<strong i="9">@12</strong>, wl_output@7)
[1894783.046]  -> [email protected]_xdg_output(new id zxdg_output_v1<strong i="10">@13</strong>, wl_output@9)
[1894783.055]  -> [email protected](new id wl_callback@14)
[1894783.061] [email protected](7, "wl_data_device_manager", 3)
[1894783.069]  -> [email protected](7, "wl_data_device_manager", 3, new id [unknown]@15)
[1894783.080] [email protected](8, "zwp_primary_selection_device_manager_v1", 1)
[1894783.088] [email protected](9, "gtk_primary_selection_device_manager", 1)
[1894783.098]  -> [email protected](9, "gtk_primary_selection_device_manager", 1, new id [unknown]@16)
[1894783.108] [email protected](10, "wl_subcompositor", 1)
[1894783.115]  -> [email protected](10, "wl_subcompositor", 1, new id [unknown]@17)
[1894783.131] [email protected](11, "xdg_wm_base", 3)
[1894783.138] [email protected](12, "zxdg_shell_v6", 1)
[1894783.144] [email protected](13, "wl_shell", 1)
[1894783.152] [email protected](14, "gtk_shell1", 3)
[1894783.167]  -> [email protected](14, "gtk_shell1", 3, new id [unknown]@18)
[1894783.188] [email protected](15, "wp_viewporter", 1)
[1894783.197] [email protected](16, "zwp_pointer_gestures_v1", 1)
[1894783.205]  -> [email protected](16, "zwp_pointer_gestures_v1", 1, new id [unknown]@19)
[1894783.223] [email protected](17, "zwp_tablet_manager_v2", 1)
[1894783.230]  -> [email protected](17, "zwp_tablet_manager_v2", 1, new id [unknown]@20)
[1894783.241] [email protected](18, "wl_seat", 5)
[1894783.248]  -> [email protected](18, "wl_seat", 5, new id [unknown]@21)
[1894784.921]  -> [email protected]_surface(new id wl_surface@22)
[1894784.934]  -> [email protected]_device(new id gtk_primary_selection_device<strong i="11">@23</strong>, wl_seat@21)
[1894784.943]  -> [email protected]_data_device(new id wl_data_device<strong i="12">@24</strong>, wl_seat@21)
[1894785.027]  -> [email protected]_surface(new id wl_surface@25)
[1894785.031]  -> [email protected]_tablet_seat(new id zwp_tablet_seat_v2<strong i="13">@26</strong>, wl_seat@21)
[1894785.040]  -> [email protected](new id wl_callback@27)
[1894785.045] [email protected](19, "zwp_relative_pointer_manager_v1", 1)
[1894785.053] [email protected](20, "zwp_pointer_constraints_v1", 1)
[1894785.060] [email protected](21, "zxdg_exporter_v1", 1)
[1894785.068]  -> [email protected](21, "zxdg_exporter_v1", 1, new id [unknown]@28)
[1894785.080] [email protected](22, "zxdg_importer_v1", 1)
[1894785.089]  -> [email protected](22, "zxdg_importer_v1", 1, new id [unknown]@29)
[1894785.101] [email protected](23, "zwp_linux_dmabuf_v1", 3)
[1894785.110] [email protected](24, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[1894785.117]  -> [email protected](24, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1, new id [unknown]@30)
[1894785.129] [email protected](25, "zwp_text_input_manager_v3", 1)
[1894785.136] [email protected](26, "gtk_text_input_manager", 1)
[1894785.145] [email protected](152130)
[1894785.277] [email protected]_id(8)
[1894785.281] [email protected]_id(10)
[1894785.283] [email protected]_id(14)
[1894785.287] [email protected]_id(27)
[1894785.293] [email protected](0)
[1894785.296] [email protected](1)
[1894785.301] [email protected](1920, 0, 530, 300, 0, "", "", 0)
[1894785.321] [email protected](3, 1920, 1080, 60000)
[1894785.327] [email protected](1)
[1894785.330] [email protected]()
[1894785.336] [email protected](152130)
[1894785.339] [email protected](0, 0, 530, 300, 0, "", "", 0)
[1894785.357] [email protected](3, 1920, 1080, 60000)
[1894785.362] [email protected](1)
[1894785.365] [email protected]()
[1894785.369] [email protected](152130)
[1894785.372] [email protected]_position(1920, 0)
[1894785.375] [email protected]_size(1920, 1080)
[1894785.379] [email protected]()
[1894785.383] [email protected]("")
[1894785.386] [email protected]()
[1894785.390] [email protected]_position(0, 0)
[1894785.395] [email protected]_size(1920, 1080)
[1894785.400] [email protected]("")
[1894785.403] [email protected](""")
[1894785.406] [email protected]()
[1894785.410] [email protected](152130)
[1894785.414] [email protected](0)
[1894785.421] [email protected](3)
[1894785.425]  -> [email protected]_pointer(new id wl_pointer@14)
[1894785.437]  -> [email protected]_swipe_gesture(new id zwp_pointer_gesture_swipe_v1<strong i="14">@10</strong>, wl_pointer@14)
[1894785.445]  -> [email protected]_pinch_gesture(new id zwp_pointer_gesture_pinch_v1<strong i="15">@8</strong>, wl_pointer@14)
[1894785.452]  -> [email protected]_keyboard(new id wl_keyboard@3)
[1894785.460] [email protected]("seat0")
[1894785.463] [email protected](152130)
[1894785.467]  -> [email protected](11, "xdg_wm_base", 1, new id [unknown]@27)
[1894840.113]  -> [email protected]_surface(new id wl_surface@31)
[1896097.874]  -> [email protected]_registry(new id wl_registry@2)
[1896097.897]  -> [email protected](new id wl_callback@3)
[1896097.947] [email protected]_id(3)
[1896097.962] [email protected](1, "wl_drm", 2)
[1896097.968]  -> [email protected](1, "wl_drm", 2, new id [unknown]@4)
[1896097.978] [email protected](2, "wl_compositor", 4)
[1896097.985] [email protected](3, "wl_shm", 1)
[1896097.993] [email protected](4, "wl_output", 2)
[1896098.000] [email protected](5, "wl_output", 2)
[1896098.006] [email protected](6, "zxdg_output_manager_v1", 3)
[1896098.015] [email protected](7, "wl_data_device_manager", 3)
[1896098.025] [email protected](8, "zwp_primary_selection_device_manager_v1", 1)
[1896098.036] [email protected](9, "gtk_primary_selection_device_manager", 1)
[1896098.050] [email protected](10, "wl_subcompositor", 1)
[1896098.059] [email protected](11, "xdg_wm_base", 3)
[1896098.068] [email protected](12, "zxdg_shell_v6", 1)
[1896098.077] [email protected](13, "wl_shell", 1)
[1896098.091] [email protected](14, "gtk_shell1", 3)
[1896098.099] [email protected](15, "wp_viewporter", 1)
[1896098.108] [email protected](16, "zwp_pointer_gestures_v1", 1)
[1896098.116] [email protected](17, "zwp_tablet_manager_v2", 1)
[1896098.127] [email protected](18, "wl_seat", 5)
[1896098.133] [email protected](19, "zwp_relative_pointer_manager_v1", 1)
[1896098.138] [email protected](20, "zwp_pointer_constraints_v1", 1)
[1896098.150] [email protected](21, "zxdg_exporter_v1", 1)
[1896098.158] [email protected](22, "zxdg_importer_v1", 1)
[1896098.166] [email protected](23, "zwp_linux_dmabuf_v1", 3)
[1896098.173]  -> [email protected](23, "zwp_linux_dmabuf_v1", 3, new id [unknown]@5)
[1896098.184] [email protected](24, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[1896098.193] [email protected](25, "zwp_text_input_manager_v3", 1)
[1896098.206] [email protected](26, "gtk_text_input_manager", 1)
[1896098.215] [email protected](152134)
[1896098.219]  -> [email protected](new id wl_callback@3)
[1896098.293] [email protected]_id(3)
[1896098.296] [email protected]("/dev/dri/card0")
[1896098.425]  -> [email protected](4)
[1896098.429] [email protected](808669761)
[1896098.435] [email protected](808669784)
[1896098.439] [email protected](808665665)
[1896098.441] [email protected](808665688)
[1896098.444] [email protected](875713089)
[1896098.447] [email protected](875713112)
[1896098.450] [email protected](909199186)
[1896098.454] [email protected](961959257)
[1896098.459] [email protected](825316697)
[1896098.464] [email protected](842093913)
[1896098.467] [email protected](909202777)
[1896098.470] [email protected](875713881)
[1896098.473] [email protected](842094158)
[1896098.476] [email protected](909203022)
[1896098.479] [email protected](1448695129)
[1896098.483] [email protected](1)
[1896098.486] [email protected](875713089)
[1896098.492] [email protected](875713089, 16777215, 4294967295)
[1896098.500] [email protected](875713112)
[1896098.512] [email protected](875713112, 16777215, 4294967295)
[1896098.525] [email protected](808669761)
[1896098.529] [email protected](808669761, 16777215, 4294967295)
[1896098.539] [email protected](909199186)
[1896098.544] [email protected](909199186, 16777215, 4294967295)
[1896098.554] [email protected](152134)
[1896098.560]  -> [email protected](new id wl_callback@3)
[1896098.585] [email protected]_id(3)
[1896098.588] [email protected]()
[1896098.590] [email protected](152134)
[1739236:1739236:0911/113806.380850:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[1899569.137]  -> [email protected]_surface(new id wl_surface@3)
[1899569.182]  -> [email protected]_region(new id wl_region@18)
[1899569.186]  -> [email protected](0, 0, 945, 640)
[1899569.197]  -> [email protected]_opaque_region(wl_region@18)
[1899569.201]  -> [email protected]()
[1899895.275]  -> [email protected]_xdg_surface(new id xdg_surface<strong i="16">@21</strong>, wl_surface@3)
[1899895.294]  -> [email protected]_toplevel(new id xdg_toplevel@22)
[1899895.299]  -> [email protected]()
[1899895.302]  -> [email protected]_app_id("Chromium-browser")
[1899895.310]  -> [email protected]_fullscreen()
[1899895.312]  -> [email protected]_maximized()
[1900760.265] [email protected](1, fd 74, 54533)
[1900762.215] [email protected]_info(33, 500)
[1900762.250] [email protected]_id(18)
[1900762.255] [email protected](0, 0, array)
[1900762.267]  -> [email protected]_window_geometry(0, 0, 945, 640)
[1900762.279] [email protected](6108)
[1900762.284]  -> [email protected]_configure(6108)
[1902493.196]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@18)
[1902493.215]  -> [email protected](fd 177, 0, 0, 4096, 16777215, 4294967295)
[1902493.226]  -> [email protected]_immed(new id wl_buffer<strong i="17">@23</strong>, 945, 640, 875708993, 0)
[1902493.276]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@24)
[1902493.280]  -> [email protected](fd 170, 0, 0, 4096, 16777215, 4294967295)
[1902493.290]  -> [email protected]_immed(new id wl_buffer<strong i="18">@25</strong>, 945, 640, 875708993, 0)
[1902493.304]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@26)
[1902493.308]  -> [email protected](fd 171, 0, 0, 4096, 16777215, 4294967295)
[1902493.317]  -> [email protected]_immed(new id wl_buffer<strong i="19">@27</strong>, 945, 640, 875708993, 0)
[1902493.564] [email protected](zwp_linux_buffer_params_v1<strong i="20">@18</strong>, 7, "failed to import supplied dmabufs: Unsupported buffer format 875708993")

@ninja- , yup. Saya akan.

@ninja- , Jika Anda mengkompilasi chromium sendiri, patch ini memungkinkan untuk mematikan browser dengan anggun + memungkinkan untuk mencetak pesan kesalahan yang dikirim libwayland-client dan patch ini memperbaiki masalah dengan buffer yang tidak didukung. Anda dapat menerapkannya dan memverifikasi bahwa masalahnya telah diperbaiki.

Skala pecahan bekerja seperti pesona di Fedora 32 dengan GNOME

Chrome 84 vs Chrome Dev 87 (wayland diaktifkan)
chrome

Ini akan menjadi langkah besar bagi aplikasi elektron dan pengguna wayland

baik, saya harus mengakui itu bekerja sebagian dan tergantung pada nilai yang dilewati wayland. Masalahnya adalah wl_output tidak mendukung penskalaan fraksional. Dan jika dibulatkan 150% menjadi 200%, maka chromium akan mendapatkan nilai "benar".

Jika tidak, xdg_output harus digunakan (Chromium akan menghitung penskalaan dari ukuran fisik dan logis tampilan). Dan pekerjaan ini sedang dalam pengembangan sekarang.

baik, saya harus mengakui itu bekerja sebagian dan tergantung pada nilai yang dilewati wayland. Masalahnya adalah wl_output tidak mendukung penskalaan fraksional. Dan jika dibulatkan 150% menjadi 200%, maka chromium akan mendapatkan nilai "benar".

Begitu, masuk akal, saya menggunakan 150% untuk ujian

@msisov perbaikan Anda akhirnya mendarat di dev snap build mingguan - berfungsi dengan baik! Terima kasih!

Sebelumnya Chrome telah membeku di pc saya setiap beberapa detik - saya benar-benar tidak tahu apakah itu bug kernel, amdgpu, chromium, xwayland atau gnome-shell :/
Saya harap ini akan lebih baik sekarang dengan Wayland murni.

@refi64 terima kasih banyak telah mengemukakannya! menarik

Karena ini tidak lagi terhalang oleh hulu apa rencana ke depan? Chrome 87 (sekarang dalam versi Beta) dikirimkan dengan wayland sebagai platform ozon yang dapat diaktifkan menggunakan google-chrome-beta --enable-features=UseOzonePlatform --ozone-platform=wayland dari PPA Chrome resmi. Saat ini electron@beta namun yang dikirimkan mengatakan versi chrome tidak mendukung wayland dalam biner bawaan.

Tampaknya sudah ada beberapa upaya dari @vially untuk

TLDR

Ketergantungan Chromium Electron saat ini mengarah ke versi yang mogok saat startup di Wayland ( chromium#1128997 ).

Setelah itu tidak lagi terjadi (misalnya: setelah satu atau dua chromium bump berikutnya) saya berencana untuk menyesuaikan dan mencoba upstream patch @hedgepigdaniel untuk mengaktifkan dukungan Wayland di build Electron resmi.

Detail teknis

Patch Pra Chromium 87

Salah satu tantangan dengan upstreaming patch Wayland saat ini adalah karena Chromium terbaru dari Electron ke versi 87 yang memungkinkan jalur kode Ozon dan non-Ozon dalam build yang sama ( chromium#1085700 ).

Patch Electron Wayland ini ditulis dengan asumsi bahwa build adalah build X11 ( USE_X11 ) atau build Ozon ( USE_OZONE ), yang berlaku hingga versi 87, tetapi tidak lagi kasus setelah itu.

Ini berarti bahwa tambalan perlu disesuaikan untuk memperhitungkan fakta bahwa sekarang USE_X11 dan USE_OZONE dapat menjadi benar pada saat yang bersamaan.

Pasang tambalan Chromium 87

Rencana saya adalah mengambil tambalan yang ada, menyesuaikannya dengan meminjam pola dari chromium#1085700 (yang saya lakukan di cabang ini ) dan kemudian mengalirkannya ke Electron.

Namun, karena bug yang telah diperbaiki sementara di Chromium ( chromium#1128997 ) tetapi belum berhasil masuk ke Electron, garpu Wayland saya saat ini menghasilkan build yang gagal dimulai di Wayland ( electron --enable-features=UseOzonePlatform --ozone-platform=wayland crash dengan kesalahan yang sama seperti pada laporan bug Chromium).

Menjalankan build Electron yang sama dengan Ozone/X11 ( electron --enable-features=UseOzonePlatform --ozone-platform=x11 ) tampaknya berfungsi dengan baik dengan tambalan ini, yang menurut saya merupakan pertanda baik.

Jadi sekarang saya hanya menunggu beberapa tonjolan Chromium di Electron yang seharusnya menghilangkan masalah saat ini , tetapi sangat mungkin untuk mengungkap yang lain .

Dan saya tahu akan ada yang lain karena saya secara manual mem- backport

Ini adalah bagian dari stacktrace jika ada yang tertarik untuk melihatnya. Tampaknya menyarankan itu mungkin juga terkait dengan inisialisasi buffer (mungkin chromium#2343545 ?), Tapi saya tidak tahu pasti. Mungkin itu membunyikan lonceng untuk @msisov atau @nickdiego.


Jejak tumpukan

[19947:1003/140001.730007:INFO:content_main_runner_impl.cc(976)] Chrome is running in full browser mode.
[4248247.318]  -> [email protected]_registry(new id wl_registry@2)
[4248247.345]  -> [email protected](new id wl_callback@3)
[4248247.458] [email protected]_id(3)
[4248247.470] [email protected](1, "wl_shm", 1)
[4248247.481]  -> [email protected](1, "wl_shm", 1, new id [unknown]@4)
[4248247.503] [email protected](2, "wl_drm", 2)
[4248247.513]  -> [email protected](2, "wl_drm", 2, new id [unknown]@5)
[4248247.528]  -> [email protected](new id wl_callback@6)
[4248247.534] [email protected](3, "zwp_linux_dmabuf_v1", 3)
[4248247.544]  -> [email protected](3, "zwp_linux_dmabuf_v1", 3, new id [unknown]@7)
[4248247.558]  -> [email protected](new id wl_callback@8)
[4248247.564] [email protected](4, "wl_compositor", 4)
[4248247.574]  -> [email protected](4, "wl_compositor", 4, new id [unknown]@9)
[4248247.587] [email protected](5, "wl_subcompositor", 1)
[4248247.597]  -> [email protected](5, "wl_subcompositor", 1, new id [unknown]@10)
[4248247.610] [email protected](6, "wl_data_device_manager", 3)
[4248247.620]  -> [email protected](6, "wl_data_device_manager", 3, new id [unknown]@11)
[4248247.634] [email protected](7, "zwlr_gamma_control_manager_v1", 1)
[4248247.644] [email protected](8, "gtk_primary_selection_device_manager", 1)
[4248247.654]  -> [email protected](8, "gtk_primary_selection_device_manager", 1, new id [unknown]@12)
[4248247.667] [email protected](9, "zxdg_output_manager_v1", 3)
[4248247.677] [email protected](10, "org_kde_kwin_idle", 1)
[4248247.687] [email protected](11, "zwp_idle_inhibit_manager_v1", 1)
[4248247.697] [email protected](12, "zwlr_layer_shell_v1", 2)
[4248247.706] [email protected](13, "xdg_wm_base", 2)
[4248247.716]  -> [email protected](13, "xdg_wm_base", 1, new id [unknown]@13)
[4248247.730] [email protected](14, "zwp_tablet_manager_v2", 1)
[4248247.740] [email protected](15, "org_kde_kwin_server_decoration_manager", 1)
[4248247.749] [email protected](16, "zxdg_decoration_manager_v1", 1)
[4248247.762]  -> [email protected](16, "zxdg_decoration_manager_v1", 1, new id [unknown]@14)
[4248247.775] [email protected](17, "zwp_relative_pointer_manager_v1", 1)
[4248247.785] [email protected](18, "zwp_pointer_constraints_v1", 1)
[4248247.795] [email protected](19, "wp_presentation", 1)
[4248247.805]  -> [email protected](19, "wp_presentation", 1, new id [unknown]@15)
[4248247.818] [email protected](20, "zwlr_output_manager_v1", 1)
[4248247.828] [email protected](21, "zwlr_output_power_manager_v1", 1)
[4248247.838] [email protected](22, "zwp_input_method_manager_v2", 1)
[4248247.847] [email protected](23, "zwp_text_input_manager_v3", 1)
[4248247.858] [email protected](24, "zwlr_foreign_toplevel_manager_v1", 2)
[4248247.867] [email protected](25, "zwlr_export_dmabuf_manager_v1", 1)
[4248247.877] [email protected](26, "zwlr_screencopy_manager_v1", 3)
[4248247.887] [email protected](27, "zwlr_data_control_manager_v1", 2)
[4248247.896] [email protected](28, "zwp_primary_selection_device_manager_v1", 1)
[4248247.906] [email protected](29, "wp_viewporter", 1)
[4248247.916] [email protected](30, "zwp_virtual_keyboard_manager_v1", 1)
[4248247.925] [email protected](31, "zwlr_virtual_pointer_manager_v1", 2)
[4248247.935] [email protected](32, "zwlr_input_inhibit_manager_v1", 1)
[4248247.945] [email protected](33, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[4248247.954] [email protected](34, "wl_seat", 7)
[4248247.964]  -> [email protected](34, "wl_seat", 5, new id [unknown]@16)
[4248247.978]  -> [email protected]_data_device(new id wl_data_device<strong i="23">@17</strong>, wl_seat@16)
[4248247.989] [email protected](35, "zwp_pointer_gestures_v1", 1)
[4248247.999] [email protected](39, "wl_output", 3)
[4248248.008]  -> [email protected](39, "wl_output", 3, new id [unknown]@18)
[4248248.022] [email protected](40, "wl_output", 3)
[4248248.032]  -> [email protected](40, "wl_output", 3, new id [unknown]@19)
[4248248.052] [email protected](41, "wl_output", 3)
[4248248.062]  -> [email protected](41, "wl_output", 3, new id [unknown]@20)
[4248248.075] [email protected](2593)
[4248248.203] [email protected]_id(6)
[4248248.210] [email protected]_id(8)
[4248248.215] [email protected]("/dev/dri/card0")
[4248248.399]  -> [email protected](6)
[4248248.406]  -> [email protected](new id wl_callback@3)
[4248248.413] [email protected](808669761)
[4248248.421] [email protected](808669784)
[4248248.427] [email protected](808665665)
[4248248.432] [email protected](808665688)
[4248248.436] [email protected](875713089)
[4248248.441] [email protected](875713112)
[4248248.445] [email protected](909199186)
[4248248.450] [email protected](961959257)
[4248248.455] [email protected](825316697)
[4248248.459] [email protected](842093913)
[4248248.464] [email protected](909202777)
[4248248.468] [email protected](875713881)
[4248248.473] [email protected](842094158)
[4248248.477] [email protected](909203022)
[4248248.482] [email protected](1448695129)
[4248248.486] [email protected](1)
[4248248.491] [email protected](2593)
[4248248.496] [email protected](1211384385, 16777215, 4294967295)
[4248248.506] [email protected](1211384408, 16777215, 4294967295)
[4248248.516] [email protected](808669761, 16777215, 4294967295)
[4248248.526] [email protected](808669784, 16777215, 4294967295)
[4248248.535] [email protected](808665665, 16777215, 4294967295)
[4248248.545] [email protected](808665688, 16777215, 4294967295)
[4248248.555] [email protected](875713089, 16777215, 4294967295)
[4248248.564] [email protected](875708993, 16777215, 4294967295)
[4248248.574] [email protected](875713112, 16777215, 4294967295)
[4248248.584] [email protected](875709016, 16777215, 4294967295)
[4248248.593] [email protected](892424769, 16777215, 4294967295)
[4248248.603] [email protected](909199186, 16777215, 4294967295)
[4248248.613] [email protected](538982482, 16777215, 4294967295)
[4248248.622] [email protected](540422482, 16777215, 4294967295)
[4248248.632] [email protected](943215175, 16777215, 4294967295)
[4248248.642] [email protected](842224199, 16777215, 4294967295)
[4248248.651] [email protected](961959257, 16777215, 4294967295)
[4248248.661] [email protected](825316697, 16777215, 4294967295)
[4248248.671] [email protected](842093913, 16777215, 4294967295)
[4248248.680] [email protected](909202777, 16777215, 4294967295)
[4248248.690] [email protected](875713881, 16777215, 4294967295)
[4248248.699] [email protected](961893977, 16777215, 4294967295)
[4248248.709] [email protected](825316953, 16777215, 4294967295)
[4248248.718] [email protected](842094169, 16777215, 4294967295)
[4248248.728] [email protected](909203033, 16777215, 4294967295)
[4248248.738] [email protected](875714137, 16777215, 4294967295)
[4248248.748] [email protected](842094158, 16777215, 4294967295)
[4248248.757] [email protected](808530000, 16777215, 4294967295)
[4248248.767] [email protected](842084432, 16777215, 4294967295)
[4248248.776] [email protected](909193296, 16777215, 4294967295)
[4248248.786] [email protected](909203022, 16777215, 4294967295)
[4248248.796] [email protected](1448433985, 16777215, 4294967295)
[4248248.805] [email protected](1448434008, 16777215, 4294967295)
[4248248.815] [email protected](1448695129, 16777215, 4294967295)
[4248248.824] [email protected](1498831189, 16777215, 4294967295)
[4248248.834] [email protected](2593)
[4248248.839] [email protected]("seat0")
[4248248.844] [email protected](3)
[4248248.849]  -> [email protected]_pointer(new id wl_pointer@8)
[4248248.855]  -> [email protected]_surface(new id wl_surface@6)
[4248248.861]  -> [email protected]_keyboard(new id wl_keyboard@21)
[4248248.875] [email protected](0, 0, 600, 340, 0, "Goldstar Company Ltd", "LG Ultra HD", 0)
[4248248.898] [email protected](1, 3840, 2160, 59997)
[4248248.911] [email protected](2)
[4248248.916] [email protected]()
[4248248.919] [email protected](0, 0, 600, 340, 0, "Goldstar Company Ltd", "LG Ultra HD", 0)
[4248248.942] [email protected](1, 3840, 2160, 59997)
[4248248.954] [email protected](2)
[4248248.959] [email protected]()
[4248248.962] [email protected](0, 0, 600, 340, 0, "Acer Technologies", "XV273K", 0)
[4248248.984] [email protected](1, 3840, 2160, 119910)
[4248248.996] [email protected](2)
[4248249.001] [email protected]()
[4248249.127] [email protected]_id(3)
[4248249.133] [email protected]()
[4248249.137] [email protected](2593)
[4248249.141] [email protected](1, fd 151, 48238)
[4248250.377] [email protected]_info(25, 600)
[4248252.512]  -> [email protected]_registry(new id wl_registry@2)
[4248252.523]  -> [email protected](new id wl_callback@3)
[4248252.568] [email protected]_id(3)
[4248252.575] [email protected](1, "wl_shm", 1)
[4248252.586]  -> [email protected](1, "wl_shm", 1, new id [unknown]@4)
[4248252.617]  -> [email protected]_pool(new id wl_shm_pool<strong i="24">@5</strong>, fd 157, 2304)
[4248252.728]  -> [email protected](6912)
[4248252.787]  -> [email protected](16128)
[4248253.706]  -> [email protected](34560)
[4248253.734]  -> [email protected](71424)
[4248253.771]  -> [email protected](145152)
[4248253.836]  -> [email protected](292608)
[4248254.912]  -> [email protected](587520)
[4248257.613]  -> [email protected](1177344)
[4248267.711] [email protected](2, "wl_drm", 2)
[4248267.726] [email protected](3, "zwp_linux_dmabuf_v1", 3)
[4248267.736] [email protected](4, "wl_compositor", 4)
[4248267.746]  -> [email protected](4, "wl_compositor", 3, new id [unknown]@6)
[4248267.760] [email protected](5, "wl_subcompositor", 1)
[4248267.770]  -> [email protected](5, "wl_subcompositor", 1, new id [unknown]@7)
[4248267.784] [email protected](6, "wl_data_device_manager", 3)
[4248267.794]  -> [email protected](6, "wl_data_device_manager", 3, new id [unknown]@8)
[4248267.808] [email protected](7, "zwlr_gamma_control_manager_v1", 1)
[4248267.818] [email protected](8, "gtk_primary_selection_device_manager", 1)
[4248267.827]  -> [email protected](8, "gtk_primary_selection_device_manager", 1, new id [unknown]@9)
[4248267.842] [email protected](9, "zxdg_output_manager_v1", 3)
[4248267.852]  -> [email protected](9, "zxdg_output_manager_v1", 3, new id [unknown]@10)
[4248267.866]  -> [email protected](new id wl_callback@11)
[4248267.872] [email protected](10, "org_kde_kwin_idle", 1)
[4248267.882] [email protected](11, "zwp_idle_inhibit_manager_v1", 1)
[4248267.892] [email protected](12, "zwlr_layer_shell_v1", 2)
[4248267.902] [email protected](13, "xdg_wm_base", 2)
[4248267.912] [email protected](14, "zwp_tablet_manager_v2", 1)
[4248267.921]  -> [email protected](14, "zwp_tablet_manager_v2", 1, new id [unknown]@12)
[4248267.935] [email protected](15, "org_kde_kwin_server_decoration_manager", 1)
[4248267.945]  -> [email protected](15, "org_kde_kwin_server_decoration_manager", 1, new id [unknown]@13)
[4248267.958] [email protected](16, "zxdg_decoration_manager_v1", 1)
[4248267.969] [email protected](17, "zwp_relative_pointer_manager_v1", 1)
[4248267.979] [email protected](18, "zwp_pointer_constraints_v1", 1)
[4248267.989] [email protected](19, "wp_presentation", 1)
[4248267.998] [email protected](20, "zwlr_output_manager_v1", 1)
[4248268.008] [email protected](21, "zwlr_output_power_manager_v1", 1)
[4248268.018] [email protected](22, "zwp_input_method_manager_v2", 1)
[4248268.028] [email protected](23, "zwp_text_input_manager_v3", 1)
[4248268.038] [email protected](24, "zwlr_foreign_toplevel_manager_v1", 2)
[4248268.048] [email protected](25, "zwlr_export_dmabuf_manager_v1", 1)
[4248268.058] [email protected](26, "zwlr_screencopy_manager_v1", 3)
[4248268.072] [email protected](27, "zwlr_data_control_manager_v1", 2)
[4248268.082] [email protected](28, "zwp_primary_selection_device_manager_v1", 1)
[4248268.093] [email protected](29, "wp_viewporter", 1)
[4248268.102] [email protected](30, "zwp_virtual_keyboard_manager_v1", 1)
[4248268.112] [email protected](31, "zwlr_virtual_pointer_manager_v1", 2)
[4248268.123] [email protected](32, "zwlr_input_inhibit_manager_v1", 1)
[4248268.133] [email protected](33, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[4248268.143]  -> [email protected](33, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1, new id [unknown]@14)
[4248268.157] [email protected](34, "wl_seat", 7)
[4248268.167]  -> [email protected](34, "wl_seat", 5, new id [unknown]@15)
[4248269.960]  -> [email protected]_surface(new id wl_surface@16)
[4248269.975]  -> [email protected]_device(new id gtk_primary_selection_device<strong i="25">@17</strong>, wl_seat@15)
[4248269.985]  -> [email protected]_data_device(new id wl_data_device<strong i="26">@18</strong>, wl_seat@15)
[4248270.059]  -> [email protected]_surface(new id wl_surface@19)
[4248270.067]  -> [email protected]_tablet_seat(new id zwp_tablet_seat_v2<strong i="27">@20</strong>, wl_seat@15)
[4248270.076]  -> [email protected](new id wl_callback@21)
[4248270.084] [email protected](35, "zwp_pointer_gestures_v1", 1)
[4248270.095]  -> [email protected](35, "zwp_pointer_gestures_v1", 1, new id [unknown]@22)
[4248270.108] [email protected](39, "wl_output", 3)
[4248270.118]  -> [email protected](39, "wl_output", 2, new id [unknown]@23)
[4248270.152]  -> [email protected]_xdg_output(new id zxdg_output_v1<strong i="28">@24</strong>, wl_output@23)
[4248270.162]  -> [email protected](new id wl_callback@25)
[4248270.168] [email protected](40, "wl_output", 3)
[4248270.178]  -> [email protected](40, "wl_output", 2, new id [unknown]@26)
[4248270.193]  -> [email protected]_xdg_output(new id zxdg_output_v1<strong i="29">@27</strong>, wl_output@26)
[4248270.202]  -> [email protected](new id wl_callback@28)
[4248270.208] [email protected](41, "wl_output", 3)
[4248270.218]  -> [email protected](41, "wl_output", 2, new id [unknown]@29)
[4248270.232]  -> [email protected]_xdg_output(new id zxdg_output_v1<strong i="30">@30</strong>, wl_output@29)
[4248270.240]  -> [email protected](new id wl_callback@31)
[4248270.246] [email protected](2596)
[4248270.373] [email protected]_id(11)
[4248270.381] [email protected]_id(21)
[4248270.386] [email protected]_id(25)
[4248270.391] [email protected]_id(28)
[4248270.395] [email protected]_id(31)
[4248270.400] [email protected](0)
[4248270.404] [email protected](1)
[4248270.409] [email protected](875709016)
[4248270.413] [email protected](875708993)
[4248270.418] [email protected](2596)
[4248270.423] [email protected]_mode(2)
[4248270.428] [email protected]("seat0")
[4248270.433] [email protected](3)
[4248270.438]  -> [email protected]_pointer(new id wl_pointer@11)
[4248270.452]  -> [email protected]_swipe_gesture(new id zwp_pointer_gesture_swipe_v1<strong i="31">@3</strong>, wl_pointer@11)
[4248270.461]  -> [email protected]_pinch_gesture(new id zwp_pointer_gesture_pinch_v1<strong i="32">@32</strong>, wl_pointer@11)
[4248270.470]  -> [email protected]_keyboard(new id wl_keyboard@33)
[4248270.481] [email protected](2596)
[4248270.487] [email protected](0, 0, 600, 340, 0, "Goldstar Company Ltd", "LG Ultra HD", 0)
[4248270.511] [email protected](1, 3840, 2160, 59997)
[4248270.524] [email protected](2)
[4248270.530] [email protected]()
[4248270.538] [email protected]("DP-3")
[4248270.544] [email protected]("Goldstar Company Ltd LG Ultra HD 0x0000E0B1 (DP-3)")
[4248270.548] [email protected]_position(3840, 0)
[4248270.556] [email protected]_size(1920, 1080)
[4248270.563] [email protected]()
[4248270.568] [email protected](2596)
[4248270.573] [email protected](0, 0, 600, 340, 0, "Goldstar Company Ltd", "LG Ultra HD", 0)
[4248270.597] [email protected](1, 3840, 2160, 59997)
[4248270.610] [email protected](2)
[4248270.614] [email protected]()
[4248270.619] [email protected]("DP-2")
[4248270.628] [email protected]("Goldstar Company Ltd LG Ultra HD 0x0000B9F1 (DP-2)")
[4248270.633] [email protected]_position(0, 0)
[4248270.640] [email protected]_size(1920, 1080)
[4248270.647] [email protected]()
[4248270.652] [email protected](2596)
[4248270.657] [email protected](0, 0, 600, 340, 0, "Acer Technologies", "XV273K", 0)
[4248270.681] [email protected](1, 3840, 2160, 119910)
[4248270.694] [email protected](2)
[4248270.699] [email protected]()
[4248270.704] [email protected]("DP-1")
[4248270.709] [email protected]("Acer Technologies XV273K 0x0000F25B (DP-1)")
[4248270.713] [email protected]_position(1920, 0)
[4248270.720] [email protected]_size(1920, 1080)
[4248270.727] [email protected]()
[4248270.733] [email protected](2596)
[4248270.738]  -> [email protected](13, "xdg_wm_base", 1, new id [unknown]@31)
[4248288.779]  -> [email protected]_surface(new id wl_surface@28)
[4248325.005]  -> [email protected]_surface(new id wl_surface@3)
[4248325.051]  -> [email protected]_buffer_scale(2)
[4248325.058]  -> [email protected]_region(new id wl_region@22)
[4248325.065]  -> [email protected](0, 0, 1920, 1240)
[4248325.077]  -> [email protected]_opaque_region(wl_region@22)
[4248325.083]  -> [email protected]()
[19947:1003/140002.022605:ERROR:wayland_window.cc(193)] Not implemented reached in virtual void ui::WaylandWindow::SetUseNativeFrame(bool)
[19947:1003/140002.022622:ERROR:wayland_window.cc(234)] Not implemented reached in virtual bool ui::WaylandWindow::ShouldWindowContentsBeTransparent() const
[19947:1003/140002.022730:ERROR:wayland_window.cc(244)] Not implemented reached in virtual void ui::WaylandWindow::SetWindowIcons(const gfx::ImageSkia &, const gfx::ImageSkia &)
[4248325.523]  -> [email protected]_region(new id wl_region@23)
[4248325.533]  -> [email protected](0, 0, 1920, 1240)
[4248325.545]  -> [email protected]_opaque_region(wl_region@23)
[4248325.551]  -> [email protected]()
[4248379.892]  -> [email protected]_registry(new id wl_registry@2)
[4248379.912]  -> [email protected](new id wl_callback@3)
[4248379.995] [email protected]_id(3)
[4248380.007] [email protected](1, "wl_shm", 1)
[4248380.017] [email protected](2, "wl_drm", 2)
[4248380.028]  -> [email protected](2, "wl_drm", 2, new id [unknown]@4)
[4248380.042] [email protected](3, "zwp_linux_dmabuf_v1", 3)
[4248380.052]  -> [email protected](3, "zwp_linux_dmabuf_v1", 3, new id [unknown]@5)
[4248380.066] [email protected](4, "wl_compositor", 4)
[4248380.075] [email protected](5, "wl_subcompositor", 1)
[4248380.085] [email protected](6, "wl_data_device_manager", 3)
[4248380.095] [email protected](7, "zwlr_gamma_control_manager_v1", 1)
[4248380.104] [email protected](8, "gtk_primary_selection_device_manager", 1)
[4248380.114] [email protected](9, "zxdg_output_manager_v1", 3)
[4248380.123] [email protected](10, "org_kde_kwin_idle", 1)
[4248380.133] [email protected](11, "zwp_idle_inhibit_manager_v1", 1)
[4248380.143] [email protected](12, "zwlr_layer_shell_v1", 2)
[4248380.152] [email protected](13, "xdg_wm_base", 2)
[4248380.162] [email protected](14, "zwp_tablet_manager_v2", 1)
[4248380.172] [email protected](15, "org_kde_kwin_server_decoration_manager", 1)
[4248380.182] [email protected](16, "zxdg_decoration_manager_v1", 1)
[4248380.191] [email protected](17, "zwp_relative_pointer_manager_v1", 1)
[4248380.201] [email protected](18, "zwp_pointer_constraints_v1", 1)
[4248380.211] [email protected](19, "wp_presentation", 1)
[4248380.220] [email protected](20, "zwlr_output_manager_v1", 1)
[4248380.230] [email protected](21, "zwlr_output_power_manager_v1", 1)
[4248380.240] [email protected](22, "zwp_input_method_manager_v2", 1)
[4248380.249] [email protected](23, "zwp_text_input_manager_v3", 1)
[4248380.259] [email protected](24, "zwlr_foreign_toplevel_manager_v1", 2)
[4248380.274] [email protected](25, "zwlr_export_dmabuf_manager_v1", 1)
[4248380.284] [email protected](26, "zwlr_screencopy_manager_v1", 3)
[4248380.299] [email protected](27, "zwlr_data_control_manager_v1", 2)
[4248380.309] [email protected](28, "zwp_primary_selection_device_manager_v1", 1)
[4248380.318] [email protected](29, "wp_viewporter", 1)
[4248380.328] [email protected](30, "zwp_virtual_keyboard_manager_v1", 1)
[4248380.338] [email protected](31, "zwlr_virtual_pointer_manager_v1", 2)
[4248380.347] [email protected](32, "zwlr_input_inhibit_manager_v1", 1)
[4248380.357] [email protected](33, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[4248380.371] [email protected](34, "wl_seat", 7)
[4248380.381] [email protected](35, "zwp_pointer_gestures_v1", 1)
[4248380.391] [email protected](39, "wl_output", 3)
[4248380.400] [email protected](40, "wl_output", 3)
[4248380.410] [email protected](41, "wl_output", 3)
[4248380.420] [email protected](2596)
[4248380.425]  -> [email protected](new id wl_callback@3)
[4248380.500] [email protected]_id(3)
[4248380.506] [email protected]("/dev/dri/card0")
[4248380.611]  -> [email protected](6)
[4248380.618] [email protected](808669761)
[4248380.623] [email protected](808669784)
[4248380.628] [email protected](808665665)
[4248380.632] [email protected](808665688)
[4248380.637] [email protected](875713089)
[4248380.642] [email protected](875713112)
[4248380.646] [email protected](909199186)
[4248380.654] [email protected](961959257)
[4248380.658] [email protected](825316697)
[4248380.663] [email protected](842093913)
[4248380.667] [email protected](909202777)
[4248380.672] [email protected](875713881)
[4248380.676] [email protected](842094158)
[4248380.681] [email protected](909203022)
[4248380.685] [email protected](1448695129)
[4248380.690] [email protected](1)
[4248380.695] [email protected](1211384385, 16777215, 4294967295)
[4248380.705] [email protected](1211384408, 16777215, 4294967295)
[4248380.715] [email protected](808669761, 16777215, 4294967295)
[4248380.724] [email protected](808669784, 16777215, 4294967295)
[4248380.734] [email protected](808665665, 16777215, 4294967295)
[4248380.744] [email protected](808665688, 16777215, 4294967295)
[4248380.754] [email protected](875713089, 16777215, 4294967295)
[4248380.763] [email protected](875708993, 16777215, 4294967295)
[4248380.773] [email protected](875713112, 16777215, 4294967295)
[4248380.782] [email protected](875709016, 16777215, 4294967295)
[4248380.792] [email protected](892424769, 16777215, 4294967295)
[4248380.802] [email protected](909199186, 16777215, 4294967295)
[4248380.811] [email protected](538982482, 16777215, 4294967295)
[4248380.821] [email protected](540422482, 16777215, 4294967295)
[4248380.830] [email protected](943215175, 16777215, 4294967295)
[4248380.840] [email protected](842224199, 16777215, 4294967295)
[4248380.849] [email protected](961959257, 16777215, 4294967295)
[4248380.859] [email protected](825316697, 16777215, 4294967295)
[4248380.869] [email protected](842093913, 16777215, 4294967295)
[4248380.878] [email protected](909202777, 16777215, 4294967295)
[4248380.888] [email protected](875713881, 16777215, 4294967295)
[4248380.898] [email protected](961893977, 16777215, 4294967295)
[4248380.907] [email protected](825316953, 16777215, 4294967295)
[4248380.917] [email protected](842094169, 16777215, 4294967295)
[4248380.926] [email protected](909203033, 16777215, 4294967295)
[4248380.936] [email protected](875714137, 16777215, 4294967295)
[4248380.945] [email protected](842094158, 16777215, 4294967295)
[4248380.955] [email protected](808530000, 16777215, 4294967295)
[4248380.965] [email protected](842084432, 16777215, 4294967295)
[4248380.974] [email protected](909193296, 16777215, 4294967295)
[4248380.987] [email protected](909203022, 16777215, 4294967295)
[4248380.997] [email protected](1448433985, 16777215, 4294967295)
[4248381.010] [email protected](1448434008, 16777215, 4294967295)
[4248381.019] [email protected](1448695129, 16777215, 4294967295)
[4248381.029] [email protected](1498831189, 16777215, 4294967295)
[4248381.038] [email protected](2596)
[4248381.044]  -> [email protected](new id wl_callback@3)
[4248381.068] [email protected]_id(3)
[4248381.075] [email protected]()
[4248381.078] [email protected](2596)
[19980:1003/140002.088964:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[19947:1003/140002.112737:ERROR:wayland_window.cc(184)] Not implemented reached in virtual void ui::WaylandWindow::Activate()
[4248416.183] [email protected](1, fd 195, 48238)
[4248417.673] [email protected]_info(25, 600)
[19947:1003/140002.153267:WARNING:render_frame_host_impl.cc(789)] InterfaceRequest was dropped, the document is no longer active: blink.mojom.AppCacheBackend
[4248458.011]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@24)
[4248458.031]  -> [email protected](fd 208, 0, 0, 7680, 16777215, 4294967295)
[4248458.050]  -> [email protected]_immed(new id wl_buffer<strong i="33">@25</strong>, 1920, 1240, 875708993, 0)
[4248458.123]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@26)
[4248458.133]  -> [email protected](fd 204, 0, 0, 7680, 16777215, 4294967295)
[4248458.151]  -> [email protected]_immed(new id wl_buffer<strong i="34">@27</strong>, 1920, 1240, 875708993, 0)
[4248458.192]  -> [email protected]_params(new id zwp_linux_buffer_params_v1@28)
[4248458.200]  -> [email protected](fd 206, 0, 0, 7680, 16777215, 4294967295)
[4248458.218]  -> [email protected]_immed(new id wl_buffer<strong i="35">@29</strong>, 1920, 1240, 875708993, 0)
[19980:1003/140002.157746:FATAL:socket_utils_posix.cc(122)] Check failed: descriptors[i].get() >= 0 (-1 vs. 0)
#0 0x5646f5f6f3c9 base::debug::CollectStackTrace()
#1 0x5646f5ebdc33 base::debug::StackTrace::StackTrace()
#2 0x5646f5ed407f logging::LogMessage::~LogMessage()
#3 0x5646f5ed48fe logging::LogMessage::~LogMessage()
#4 0x5646f62b7973 mojo::SendmsgWithHandles()
#5 0x5646f346ef32 mojo::core::(anonymous namespace)::ChannelPosix::WriteNoLock()
#6 0x5646f346d036 mojo::core::(anonymous namespace)::ChannelPosix::Write()
#7 0x5646f3455e69 mojo::core::NodeChannel::WriteChannelMessage()
#8 0x5646f34567ed mojo::core::NodeChannel::SendChannelMessage()
#9 0x5646f345c368 mojo::core::NodeController::SendPeerEvent()
#10 0x5646f345c93b mojo::core::NodeController::ForwardEvent()
#11 0x5646f7ab6c7e mojo::core::ports::Node::SendUserMessageInternal()
#12 0x5646f7ab6910 mojo::core::ports::Node::SendUserMessage()
#13 0x5646f345a241 mojo::core::NodeController::SendUserMessage()
#14 0x5646f3454338 mojo::core::MessagePipeDispatcher::WriteMessage()
#15 0x5646f3446fba mojo::core::Core::WriteMessage()
#16 0x5646f628ccdc mojo::Connector::Accept()
#17 0x5646f629b61e mojo::internal::MultiplexRouter::InterfaceEndpoint::SendMessage()
#18 0x5646f628fefc mojo::InterfaceEndpointClient::SendMessage()
#19 0x5646f2e3ac17 ui::ozone::mojom::WaylandBufferManagerHostProxy::CommitOverlays()
#20 0x5646f2e02aeb ui::WaylandBufferManagerGpu::CommitOverlaysInternal()
#21 0x5646f2e04298 base::internal::Invoker<>::RunOnce()
#22 0x5646f5f1908b base::TaskAnnotator::RunTask()
#23 0x5646f5f321ac base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl()
#24 0x5646f5f31dd8 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()
#25 0x5646f5ed8dd4 base::MessagePumpDefault::Run()
#26 0x5646f5f32a3c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
#27 0x5646f5efcfe5 base::RunLoop::Run()
#28 0x5646f9b1ee07 content::GpuMain()
#29 0x5646f4f1674d content::RunZygote()
#30 0x5646f4f17bae content::ContentMainRunnerImpl::Run()
#31 0x5646f3472397 content::RunContentProcess()
#32 0x5646f347248c content::ContentMain()
#33 0x5646f234fa9e main
#34 0x7f07cfaf7152 __libc_start_main
#35 0x5646f2337f6e _start
Task trace:
#0 0x5646f2e028cf ui::WaylandBufferManagerGpu::CommitOverlays()
#1 0x5646f2e32ba4 ui::GbmSurfacelessWayland::SwapBuffersAsync()
#2 0x5646f2e32ba4 ui::GbmSurfacelessWayland::SwapBuffersAsync()
#3 0x5646f7344b59 gpu::Scheduler::RunNextTask()
#4 0x5646f7344b59 gpu::Scheduler::RunNextTask()
Task trace buffer limit hit, update PendingTask::kTaskBacktraceLength to increase.

Received signal 6

Langkah selanjutnya

Saya pribadi telah menunggu ini selama beberapa tahun sekarang dan dengan kemajuan Chromium baru-baru ini, sepertinya sekarang sudah sangat dekat .

Tetapi masih ada beberapa bug dan masalah yang tersisa dan itulah sebabnya saya secara aktif memantau Chromium dan Electron untuk melihat apakah ada yang bisa saya bantu untuk membuat ini terjadi sedikit lebih cepat. Dan dilihat dari minat dalam masalah ini, saya cukup yakin ada orang lain yang melakukan hal yang sama yang memberi saya keyakinan bahwa ini mungkin akan segera diterapkan.

Sisi baiknya, patch Electron 10 saat ini bekerja dengan baik untuk saya dan saya telah menjalankan Visual Studio Code dan Slack secara native di Wayland tanpa masalah selama beberapa minggu sekarang (walaupun vscode memerlukan patch kecil untuk membuatnya kompatibel dengan Electron 10). Jadi, sampai mereka masuk ke build Electron resmi, saya pikir itu cara yang bagus untuk menjalankan Electron di Wayland saat ini.

Terima kasih banyak untuk semua upaya Anda yang berkelanjutan dalam hal ini.

@vially Pengingat cepat saat melakukan upstream patch ini, termasuk Chromium build flag RTC_USE_PIPEWIRE=true akan mengaktifkan berbagi layar dengan aplikasi elektron (MS Teams/Slack/dll.) dari Mutter, KDE, dan komposer berbasis wlroots.

Bendera itu sebenarnya akan berguna bahkan ketika elektron masih berjalan di XWayland, tetapi jelas masuk akal untuk menstandarkannya setelah dukungan Wayland di-upstream IMO.

@vially , tolong laporkan masalahnya ke pelacak bug chromium? Terima kasih.

Tentu, saya berencana untuk melakukan itu, tetapi karena saya tidak sepenuhnya yakin itu adalah bug Chromium, saya pikir saya akan menyelidikinya lebih dulu.

Sangat mungkin ini adalah bug di patch Electron Wayland atau mungkin itu adalah sesuatu yang telah diperbaiki di Chromium hulu, jadi saya ingin mengesampingkannya sebelum saya membuat bug Chromium.

Sedikit di luar topik: Saya kira Anda pasti sudah mengetahuinya, tetapi jika tidak, sepertinya saat ini ada regresi yang diperkenalkan di Chromium 87.0.4280.11 (yang tidak ada di 87.0.4278.0 ) yang mencegah Chromium dari peluncuran di Wayland: chromium#1136287 (digandakan oleh #1136252 ). Itu tidak mempengaruhi Electron dengan cara apa pun (atau setidaknya belum) tetapi saya hanya berpikir saya akan menyebutkannya jika Anda belum melihatnya dan Anda mungkin dapat membantu melakukan triase. @msisov

@vially , seharusnya sudah diperbaiki oleh https://chromium-review.googlesource.com/c/chromium/src/+/2464347 .

Terima kasih banyak untuk semua orang yang meluangkan waktu dan tenaga untuk ini! Terima kasih @msisov dan orang-orang Igalia dan terima kasih @vially.

Biner yang telah dikompilasi juga tersedia dengan electron-nightly selama beberapa hari untuk semua orang yang ingin mencoba ini.


Saya belum dapat menemukan flag RTC_USE_PIPEWIRE=true di manapun di repo ini. Ini sepertinya langkah logis untuk (tetapi tidak hanya) aplikasi wayland dan lingkungan desktop. Haruskah ada masalah terpisah untuk ini?

Saya belum dapat menemukan flag RTC_USE_PIPEWIRE=true di manapun di repo ini. Ini sepertinya langkah logis untuk (tetapi tidak hanya) aplikasi wayland dan lingkungan desktop. Haruskah ada masalah terpisah untuk ini?

Mungkin, saya berharap itu akan dimasukkan di sini. Ini adalah perbaikan sederhana yang dapat dilakukan kapan saja. Saya baru-baru ini menemukan ke mana harus pergi (saya pikir), jadi saya akan mencoba memasukkan PR besok. Masalahnya adalah saya perlu waktu dan aplikasi sampel untuk mengujinya.

@danshick Saya berencana untuk mengirimkan permintaan tarik untuk RTC_USE_PIPEWIRE=true juga, tetapi satu-satunya alasan saya belum melakukannya adalah karena saya belum dapat membuat berbagi layar berfungsi dengan chromium di mesin saya (setelah mengaktifkan bendera). Dan saya tidak ingin mengajukan permintaan tarik untuk sesuatu yang tidak dapat saya uji.

Tetapi akan sangat bagus jika seseorang yang dapat menguji ini dapat mengetahui cara mengaktifkannya di Electron dan mengirimkan permintaan tarik.

Tetapi akan sangat bagus jika seseorang yang dapat menguji ini dapat mengetahui cara mengaktifkannya di Electron dan mengirimkan permintaan tarik.

Saya akan mencobanya dan menghubungkan PR di sini ketika saya punya waktu

Saya akan mencobanya dan menghubungkan PR di sini ketika saya punya waktu

Oh man, mendapatkan dan membangun elektron adalah tugas. Saya telah menyelesaikan semuanya, akhirnya, jadi semoga saya dapat membuat perubahan, membangunnya, dan mengujinya dalam beberapa hari ke depan.

Sunting: --script-executable=/usr/bin/python2 , lupa gn adalah pendukung python2.

Sunting2: ... dan itu masih belum cukup sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py

Sunting3: Saya tidak bisa mendapatkan elektron untuk dibangun, mendapatkan kesalahan dalam kompilasi file uji unit yang seharusnya tidak terkait dengan flag rtc_use_pipewire=true . Saya tahu itu bisa dilakukan karena paket elektron-ozon di AUR menyertakan tanda itu sebagai argumen tambahan untuk gn.

../../components/net_log/net_export_file_writer_unittest.cc:876:22: error: variable type 'net_log::FakeNetworkContext' is an abstract class
  FakeNetworkContext fake_network_context;
                     ^
gen/services/network/public/mojom/network_context.mojom.h:617:16: note: unimplemented pure virtual method 'SetCertVerifierClient' in 'FakeNetworkContext'
  virtual void SetCertVerifierClient(::mojo::PendingRemote<CertVerifierClient> client) = 0;
               ^
1 error generated.
[38912/81310] CXX obj/components/network_time/unit_tests/network_time_tracker_unittest.o
ninja: build stopped: subcommand failed.


Bagi siapa pun yang penasaran, tambalan yang saya coba buat hanya ini ...

diff --git a/build/args/release.gn b/build/args/release.gn index e5017f6e1..3ecf23181 100644 --- a/build/args/release.gn +++ b/build/args/release.gn @@ -14,3 +14,6 @@ rtc_use_h264 = proprietary_codecs # who have an LGPL requirement to ship ffmpeg as a dynamically linked library, # we build ffmpeg as a shared library. is_component_ffmpeg = true + +# Enable pipewire support for screen casting on Wayland +rtc_use_pipewire = true diff --git a/build/args/testing.gn b/build/args/testing.gn index 8f62af6e4..db2a7752c 100644 --- a/build/args/testing.gn +++ b/build/args/testing.gn @@ -12,3 +12,6 @@ symbol_level = 1 # The initialization of the decoder depends on whether ffmpeg has # been built with H.264 support. rtc_use_h264 = proprietary_codecs + +# Enable pipewire support for screen casting on Wayland +rtc_use_pipewire = true

Saya tidak tahu apakah saya harus meletakkan ini di sini, tetapi sejauh ini saya memiliki elektron yang bekerja di bawah Wayland menggunakan electron-nightly dan --enable-accelerated-mjpeg-decode --enable-accelerated-video --ignore-gpu-blacklist --enable-native-gpu-memory-buffers --enable-gpu-rasterization --enable-features=UseOzonePlatform --ozone-platform=wayland sebagai argumen peluncuran. Ada satu hal yang terjadi, yaitu: tidak ada bilah judul di jendela mana pun.

Haruskah saya membuka masalah baru atau kita bisa mendiskusikannya di sini?

@juxuanu dan

@ninja- Ini gnome-shell, jadi Bergumam. Saya kira kami menemukan bug, kalau begitu.

Apakah Electron menggunakan dekorasi sisi server atau sisi klien? GNOME hanya mendukung sisi klien.

@juxuanu Itu menarik karena saya mengalami hal yang sama pada chromium stable (86.x...) yang dibangun dengan ozon. Jadi ini memang tampak seperti beberapa bug tetapi tentu saja bukan regresi dari stable. Menurut Anda mengapa ini adalah bug di Mutter? Setiap aplikasi asli Wayland lainnya tampaknya berfungsi di Gnome, kecuali Chromium. Itu lebih mirip bug Chromium daripada bug Mutter.

Menurut Anda mengapa ini adalah bug di Mutter? Setiap aplikasi asli Wayland lainnya tampaknya berfungsi di Gnome, kecuali Chromium. Itu lebih mirip bug Chromium daripada bug Mutter.

Itu karena Gnome telah memutuskan untuk tidak mendukung dekorasi sisi server yang berarti semua aplikasi harus menggambar dekorasi mereka sendiri (https://gitlab.gnome.org/GNOME/mutter/-/issues/217).

Ini berarti bahwa agar jendela Electron terlihat "waras" di Gnome, salah satu dari ini perlu terjadi:

  • Gnome perlu mulai mendukung dekorasi sisi server (dengan membaca masalah terkait, ini tampaknya tidak mungkin), atau
  • seseorang perlu menambahkan dukungan untuk dekorasi sisi klien di Electron

@vially Oh saya pikir saya salah membaca. Saya pikir saya sedang membaca Chromium tetapi mereka berbicara tentang Electron (Karena Chromium melakukan dekorasi sisi klien tetapi saya mengalami beberapa masalah serupa).

Saya telah memikirkan hal ini sedikit lebih banyak dan mengingat bahwa Electron sudah menggunakan GTK untuk beberapa hal mungkin tidak akan terlalu sulit untuk menggunakan GTK untuk menggambar bilah judul juga ketika berjalan di GNOME. Jika ini berguna bagi seseorang yang ingin mencoba ini ,

Opini pribadi

Saya bukan pengguna GNOME jadi saya tidak memiliki kuda dalam perlombaan ini, tetapi saya masih berharap GNOME akan mendengarkan umpan balik yang membangun dan mempertimbangkan kembali posisi mereka dalam hal ini.

Atau mungkin libdecoration akhirnya dirilis yang mungkin bisa meringankan masalah ini. Meskipun saya tidak yakin apakah memerlukan aplikasi untuk menautkan ke perpustakaan lain agar dapat berjalan dengan baik di satu compositor tertentu (bahkan jika agak populer) adalah hasil terbaik untuk ini.

Sejujurnya, saya lebih suka seluruh dekorasi jendela ini tidak diimplementasikan dalam elektron. Pengembang GNOME membuat pendirian yang kuat bahwa "apa pun yang tidak dilakukan dengan cara mereka tidak didukung", jadi harus menyiasatinya di semua aplikasi klien hanya menambah kerumitan pada semua aplikasi hilir.

Jika dekorasi rusak di GNOME karena pengembang bersikeras "begitulah seharusnya", maka biarlah. Mencoba mengatasi bug GNOME terus membawa masalah atau inkonsistensi ke lingkungan non-GNOME.

Cukup banyak aplikasi yang telah memecahkan seluk-beluk atas nama mencoba bekerja dengan baik di GNOME. Saya lebih suka upaya dimasukkan ke dalam lingkungan pendukung yang peduli dengan standarisasi dan kompatibilitas lintas-DE.

Chromium sudah memiliki kode untuk menggambar bilah judul menggunakan GTK:
https://chromium.googlesource.com/chromium/src/+/master/ui/gtk/native_theme_gtk.cc#695

Pada Sabtu, 14 November 2020, 16:22 Hugo Barrera [email protected] menulis:

Jujur, saya akan lebih seluruh dekorasi jendela hal ini tidak
diimplementasikan dalam elektron. Pengembang GNOME membuat pendirian yang kuat bahwa
"apa pun yang tidak dilakukan dengan cara mereka tidak didukung", jadi harus mengatasinya
di semua aplikasi klien hanya menambah kerumitan pada semua aplikasi hilir.

Jika dekorasi rusak di GNOME karena pengembang bersikeras "itu
seperti yang seharusnya", maka biarlah. Mencoba mengatasi bug GNOME
terus membawa masalah atau inkonsistensi ke lingkungan non-GNOME.

Cukup banyak aplikasi yang telah memecahkan seluk-beluk atas nama mencoba bekerja
dengan benar di GNOME. Saya lebih suka upaya dimasukkan ke dalam lingkungan yang mendukung
yang peduli dengan standarisasi dan kompatibilitas lintas-DE.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/electron/electron/issues/10915#issuecomment-727273382 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAM4YSPJBCV2S5L5GULQVOTSP37J7ANCNFSM4EA2BOCA
.

Itu karena Gnome telah memutuskan untuk tidak mendukung dekorasi sisi server yang berarti semua aplikasi harus menggambar dekorasi mereka sendiri (https://gitlab.gnome.org/GNOME/mutter/-/issues/217).

Ini berarti bahwa agar jendela Electron terlihat "waras" di Gnome, salah satu dari ini perlu terjadi:

* Gnome needs to start supporting server-side decorations (by reading the linked issue, this seems unlikely), or

* someone needs to add support for client-side decorations in Electron

Tetapi dalam laporan bug yang ditautkan, seseorang menunjukkan:

Ini cukup jelas, spesifikasi dekorasi XDG itu sendiri menuntut dukungan dekorasi dari klien. Itu juga secara eksplisit mengizinkan
komposer untuk mengabaikan preferensi klien.
Artinya, implementasi compositor yang selalu menggunakan mode client_side dalam peristiwa konfigurasi akan sangat ditentukan
sesuai. Setiap klien yang mengklaim dukungan, tetapi tidak mendukung dekorasi sisi klien tidak.

Jadi, bahkan jika seseorang berpikir lebih baik menggunakan dekorasi sisi server, tampaknya klien yang patuh pada wayland harus mendukung CSD.

Ini cukup jelas, spesifikasi dekorasi XDG itu sendiri menuntut dukungan dekorasi dari klien. Itu juga secara eksplisit mengizinkan
komposer untuk mengabaikan preferensi klien.
Artinya, implementasi compositor yang selalu menggunakan mode client_side dalam peristiwa konfigurasi akan sangat ditentukan
sesuai. Setiap klien yang mengklaim dukungan, tetapi tidak mendukung dekorasi sisi klien tidak.

FWIW, GNOME tidak mengikuti aturan ini sama sekali. Tombol konfirmasi dalam hal-hal seperti pemilih file dianggap sebagai "dekorasi", jadi menyembunyikan dekorasi klien menyembunyikan tombol tindakan utama.

Yang mengatakan, jika spesifikasinya sejelas ini, maka saya kira masuk akal bagi elektron untuk mendukung ini.

Satu-satunya kekhawatiran saya adalah bahwa pengembang aplikasi mungkin akhirnya lupa untuk memikirkan satu atau alternatif lain -- fleksibilitas sebanyak ini pada klien terdengar seperti faktor yang bagus untuk diabaikan oleh pengembang.

Mungkin ada implementasi default dari dekorasi sisi klien yang diaktifkan secara otomatis, dan kemudian penyisihan untuk pengembang yang ingin melakukan sesuatu yang lebih khusus untuk aplikasi? Jadi orang-orang tanpa dekorasi sisi server setidaknya mendapatkan beberapa dasar?

Protokol wayland inti tidak memiliki konsep dekorasi, klien harus menggambar bilah judul mereka sendiri kecuali secara eksplisit diberitahu sebaliknya (misalnya melalui xdg_decoration jika diterapkan - dan ingat return CLIENT_SIDE akan menjadi implementasi yang valid meskipun a yang tidak berguna)

I untuk satu akan memilih untuk membuat masalah terpisah untuk topik tersebut. Alasan awal untuk masalah ini adalah menyediakan pembangunan wayland yang sekarang dilakukan di saluran malam. Kami pasti akan mengalami lebih banyak masalah dengan wayland dan membahas masing-masing di utas ini akan membuat banyak spam.

Namun mengenai topik bilah judul, saya juga akan menyebutkan bahwa masalah juga ada di chrome dan kemungkinan perlu diperbaiki di sana juga. Untuk mereproduksi chrome terbuka ini dengan wayland dinonaktifkan, klik kanan pada bilah judul untuk memastikan bahwa "Gunakan bilah judul dan batas sistem" diaktifkan. Setelah itu restart chrome kali ini dengan wayland diaktifkan dan Anda akan melihat bahwa Anda tidak memiliki bilah judul. Mungkin yang terbaik adalah menunggu ini diperbaiki di hulu.

rtc_use_pipewire=true diperlukan untuk setiap build Wayland dan menurut saya harus didiskusikan di sini. @danshick saya lihat sedang mengerjakannya.

rtc_use_pipewire=true diperlukan untuk setiap build Wayland dan menurut saya harus didiskusikan di sini. @danshick saya lihat sedang mengerjakannya.

Tidak diperlukan, tetapi tentu berguna jika desktopCapturer akan berfungsi. Mengaktifkan flag itu telah membawa saya ke lusinan kesalahan build yang saya alami.

Saya tahu adalah mungkin untuk membangun dengan bendera itu karena paket elektron-ozon AUR memilikinya, tetapi paket itu segfaults pada saya setiap kali saya mencoba desktopCapturer API, dan saya tidak berhasil memodifikasi PKGBUILD itu untuk mempertahankan simbol debug.

Mempertimbangkan perubahan ini tampaknya lebih terlibat daripada hanya menambahkan bendera dan membangun kembali, dan fakta bahwa itu berguna bahkan dari XWayland, saya pikir itu mungkin yang terbaik untuk masalah/PR baru.

Saya tahu adalah mungkin untuk membangun dengan bendera itu karena paket elektron-ozon AUR memilikinya, tetapi paket itu segfaults pada saya setiap kali saya mencoba desktopCapturer API, dan saya tidak berhasil memodifikasi PKGBUILD itu untuk mempertahankan simbol debug.

Simbol debugging berfungsi untuk saya - ini adalah bagian yang mungkin relevan dari makepkg.conf :

#-- Compiler and Linker Flags
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j12"
#-- Debugging flags
#DEBUG_CFLAGS="-g -fvar-tracking-assignments"
#DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
DEBUG_CFLAGS="-g -Og"
DEBUG_CXXFLAGS="-g -Og"

OPTIONS=(!strip docs !libtool !staticlibs emptydirs zipman purge debug)

Terima kasih @hedgepigdaniel , saya mencoba !strip dan debug , yang sepertinya dihormati di pkgbuild, tetapi beberapa flag kompiler tambahan ini terlihat berguna.

Saya masih ingin mendapatkan bangunan ini sebagaimana mestinya langsung dari git, tetapi setidaknya saya dapat mendiagnosis segfault lebih cepat.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat