Electron: ضع في اعتبارك توفير تصميم لـ Wayland

تم إنشاؤها على ٢٥ أكتوبر ٢٠١٧  ·  139تعليقات  ·  مصدر: electron/electron

  • الإصدار الإلكتروني: أي
  • نظام التشغيل: لينوكس

سلوك متوقع

يأتي أحدث نظام Ubuntu مع Wayland وهو خادم عرض افتراضي.
على الأجهزة المضمنة ، توفر wayland عادةً أفضل أداء للعرض ، على الأقل مقارنةً بـ X11 حيث يكون الأداء عادةً ضعيفًا جدًا.

السلوك الفعلي

تعد إصدارات Linux / arm / arm64 الثنائية الحالية رائعة ولكنها تعمل بشكل سيء جدًا من تجربتي على الأجهزة المضمنة. كلها مرتبطة بـ libx11 / gtk مما يجعلها غير قابلة للاستخدام في wayland.

يمكن إنشاء libGtk باستخدام --wayland-backend ومن ثم يمكن بناء الإلكترون عليه

أود حقًا أن يفكر فريق الإلكترون في توفير ثنائيات مسبقة الصنع قابلة للاستخدام مع wayland ، والتي من شأنها أن تفتح نطاقًا جديدًا من الاحتمالات ، خاصة على الأجهزة المضمنة.

blockeupstream ❌ enhancement platforlinux

التعليق الأكثر فائدة

تحديث : نحن (Igalia) نعمل حاليًا على ترحيل Chromium / Linux القديم (المعروف أيضًا باسم: Aura / X11) إلى Ozone ( crbug.com/789065 ) ، بحيث يمكن اختيار الواجهة الخلفية X11 أو Wayland Ozone وفقًا لذلك في وقت التشغيل. علاوة على ذلك ، هناك مطلب للقدرة على التبديل بين الأوزون والإرث في وقت التشغيل كآلية احتياطية في حالة حدوث أخطاء خلال هذه الفترة الانتقالية. بمجرد الانتهاء من ذلك ، وصقل الواجهة الخلفية لـ wayland واختبارها بشكل صحيح ، نأمل أن تشق طريقها إلى إصدارات Chromium / Linux الرسمية.

إنه لأمر رائع أن نسمع أن vscode / الإلكترون قادر بالفعل على العمل فوق أوزون الكروم / وايلاند (أحتاج إلى إيجاد بعض الوقت لتجربته بنفسي :)). شكرا للعمل والمشاركة هذا.

لمزيد من المتابعة ، يرجى التواصل معنا على {nickdiego، msisov} @ igalia.com

ال 139 كومينتر

بعد القراءة قليلاً ، يبدو أن أفضل طريقة لتحقيق ذلك هي تمكين الأوزون في بناء الكروم. لذا أردت أن أعرف ما إذا كان شخص ما قد فعل ذلك أو إذا كان بإمكاني الحصول على بعض المؤشرات لتجربته؟
هل هناك أيضًا أي أجزاء أخرى من الإلكترون لها تبعيات X11 قوية؟ لا ينبغي أن GTK3 في هذه المرحلة ولكن أتساءل عما إذا كانت أشياء مثل Brightray موجودة؟

مزيد من النظر في البناء يظهر أن الإلكترون يعتمد على الكروم libgtkui.
يحتوي libgtkui في الكروم على تبعيات قوية نوعًا ما على X11 ولن يعتمد على أي شيء آخر غير X11 / OSX / Win في هذه المرحلة.

لست متأكدًا من استخدام الكروم libgtkui (هذا ليس في libgtk3).
يبدو أنه لإنشاء رموز الحالة ومؤشرات التطبيق.
أتساءل عما إذا كان من الممكن جعل هذا اختياريًا ...

لقد تمكنت من تصحيح محتوى libchromium لجعله يبني بدون X11.
هذا يتطلب عددًا قليلاً من التصحيحات وهو غير مناسب حقًا.

يمكن إنشاء محتوى libchromium في هذه الحالة باستخدام use_aura=true use_ozone=true وبعض المعلمات الأخرى. لمزيد من التفاصيل ، انظر التصحيحات الخاصة بي هنا https://github.com/LongChair/libchromiumcontent/commits/upgrade-to-chromium-61

ثم بدأت في بناء الإلكترون والوضع مشابه. على الرغم من أن معظم الكود يحتوي على بعض الأجزاء #if defined(USE_AURA) ، فمن الواضح أنه لا يمكن بناؤها لهالة مع الأوزون في هذه المرحلة على الرغم من أن libgtk3ui لن يعتمد عليها.

هناك أيضًا بتات في ملفات GYP الساطعة التي تجعلها تعتمد على X11 ، ستحتاج نسخة wayland هناك لربطها بـ displaymanager libs الصحيح ( wayland-client, ... ).

أعتقد أن أفضل طريقة لجعلها قابلة للبناء دون الكثير من المتاعب على نظام التشغيل Linux وبدون دعم X11 ، هي جعل مكون libgtk3ui يستخدم optionnal في الإنشاء. لكني لا أعرف الإلكترون بما يكفي لأعرف ما قد ينكسر / يجعل هذا غير متوفر. يبدو أنه غالبًا ما تكون رموز شريط المهام ، والتي لن تهم كثيرًا نظرًا لعدم وجود شريط مهام في ويستون على أي حال :)

أعتقد أنني سأتوقف عن محاولتي هنا لأن ذلك يؤدي إلى الكثير من التصحيحات ولم يكن هناك اهتمام / تعليقات على هذا من فريق الإلكترون في هذه المرحلة :)

سيسمح هذا بالتشغيل عبر اختراق على ChromeOS أيضًا.

سيسمح هذا بالتشغيل عبر اختراق على ChromeOS أيضًا.

لقد أثار هذا اهتمامي قليلاً ، هل يمكنك شرح كيفية عمل ذلك؟

تستخدم أحدث أجهزة chromeos ، تلك التي تجمع وقت تشغيل android ، wayland لعرض تطبيقات غير الكروم.

لقد نجحت في تجميع وتشغيل العرض التوضيحي hello wayland.

يستخدم ChromeOS Aura & Ozone ، إما مع Wayland أو GBM / KMS.
لا تزال القضايا المذكورة أعلاه هي نفسها. لا يزال libgtkui هو المشكلة الرئيسية لإنشاء بنية ، سواء داخل الكروم أو الإلكترون.

تقدم لطيف LongChair !
كنت أبحث في ذلك أيضًا ولكني فضلت اختبار Chrome (Chromium) لـ Wayland أولاً. أعتقد أن محرك V8 هو الجزء الأكبر للترحيل ، في كل من Chrome و Electron.
يحتوي Igalia على شوكة كروم قريبة من المنبع: https://github.com/Igalia/chromium
ربما يمكننا دمج بقع Igalia في بناء Electron الخاص بك؟
حسنًا ، لم أتمكن من تشغيل Chromium على Wayland حتى الآن ...

لقد تمكنت من تجميع وتشغيل الكروم باستخدام تصحيحات Wayland! شاهد نص البناء هنا: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD؟

onny : كما قصدت من قبل ، يبدو أن الكثير من تبعيات X11 لا تزال في الإلكترون نفسه لأنه إذا تم استخدام libgtkui في بناء libcc.

بقدر ما رأيت ، يتعامل الإلكترون أيضًا مع AURA كمعامل بناء ولكن بعد ذلك يفترض استخدام aura / x11. لذلك لا توجد طريقة حاليًا للحصول عليه للبناء بدون X11.

سيتم تشغيله على Xwayland / Wayland ولكن هذا بعيد كل البعد عن تقديم أداء wayland ، خاصةً على المضمنة.

أوه هذا مثير للاهتمام:

يستخدم Electron الآن GTK3 في الفرع الرئيسي ، وسيتم شحنه في الإصدار الثانوي / الرئيسي التالي.
https://github.com/electron/electron/issues/2927#issuecomment -347092515

👍

onny : نعم هذا ما يجلبه الكروم 61. هذا تقدم.

ما أبحث عنه هو نسخة أصلية كاملة من الإلكترون على الطريق السريع حيث يميل X11 (Xwayland) إلى خفض الأداء الزائد من خلال مجموعة.
لهذا ، هناك مشكلتان ، حتى إذا كان Chromium يبني ويعمل على الطريق الأصلي ، فهذه هي libgtkui afaik. يبدو أن التبعية التي يضيفها libcc إلى بنية الكروم نفسها تعتمد بشدة على X11 في هذه المرحلة.
وبغض النظر عن الكروم ، فإن كود الإلكترون نفسه يعتمد على كل من libcc: gtkui ، ولكن أيضًا على مجموعة من وظائف X11 التي لا تتوفر في wayland الأصلي.

لست متأكدًا من كيفية التغلب على تبعية X11. ستكون الأشياء التالية مطلوبة:

  • تخلص في الإلكترون من حاجة licbc gtkui. ؟ إذا لم يكن ذلك ممكنًا ، فعليك أن تجعل الكروم متوافقًا مع X11 / Wayland
  • تخلص من التبعيات الإلزامية لـ X11. يبدو أن كود الإلكترون يستخدم AURA ولكنه يفترض أنه AURA X11 حيث يمكن أن يكون AURA / Wayland. لست متأكدًا مما إذا كان هناك أي مكافئات لوظائف X11 المستخدمة.

سيكون من الرائع لو استطاع بعض مطوري الإلكترون تقييم ذلك أو تقديم بعض التعليقات / الاعتبارات الفنية هنا :)

أي أخبار عن هذا؟

مرحبا! أردت فقط أن أشارك أننا (من Igalia) لدينا دعم لـ Wayland في كل من مستويات Chromium (المتصفح) والمحتوى (طبقة التضمين) في https://github.com/Igalia/chromium/.

بناءً على كيفية تكوين الإلكترون فوق بنية الكروم العادية / x11 اليوم ، قد يكون من السهل حقًا تجربته فوق الكروم / وايلاند.

أكبر الاختلافات هي:

  • الكروم / وايلاند المباني لديها "الأوزون" تمكين.
  • chromium / wayland يعمل على قمة "خدمة واجهة المستخدم" قيد التطوير ، في أرض الكروم.

يرجى التواصل معي على \ tonikitoo في igalia dot com \ ، إذا كان أحد يريد متابعة هذا الأمر.

هل يجد أي شخص حلاً لتشغيل Electron بدون X11؟

tonikitoo ، هل لديك أي إشارة إلى متى سيتم دمج عملك على Wayland في المنبع؟

luispabon يجري العمل بنشاط في المنبع. نقدر أن حوالي 85٪ موجود بالفعل في الخط الرئيسي للكروم.

/ سم مكعبmsisov

تضمين التغريدة

مرحبًا tonikitoo ، هل من أخبار جيدة بخصوص الإلكترون مع xwayland أو wayland أو Weston؟

نحن لا نعمل على الإلكترون ، بل نضيف دعم wayland في Chromium :)

crbug.com/578890

أي أخبار عن دعم وايلاند؟ أود أن أرى VSCode يعمل أصلاً على wayland بدلاً من Xwayland.

GitHubRepositoryX تابع التقدم المحرز في قضية crbug في التعليق السابق لتعليقك ، ولا يزال يتم تحديثه بنشاط.

لقد لاحظت أن الكروم تم تصحيحه مؤخرًا لدعم libgtkui على الأوزون (كل من X11 و Wayland): https://chromium-review.googlesource.com/c/chromium/src/+/1744372

لذلك من المحتمل أن يحل ذلك المشكلة التي ذكرها @ LongChair ، حيث لا يزال من الممكن استخدام libgtkui في منطقة الأوزون.

حاولت تشغيل أعلام بناء الأوزون / وايلاند واختراق بعض المشاكل ، وتمكنت من الوصول إلى نقطة حيث تعمل! لا يزال الرمز بحاجة للتنظيف والاختبار والفصل إلى تغييرات أصغر قبل إجراء العلاقات العامة ، ولكن هنا الفرع: https://github.com/electron/electron/compare/master...hedgepigdaniel : ozone؟ 1

يعمل الوعي بالتغيير DPI (https://github.com/electron/electron/issues/11050) بشكل مثالي كما هو الحال في عمليات إنشاء الأوزون / wayland chromium ، والأجزاء المفقودة منها مكسورة بالمثل ، على سبيل المثال لا توجد مربعات حوار مفتوحة للملف حتى الآن (على الرغم من أعتقد أنهم يعملون الآن).

بالنسبة للجزء الأكبر ، فإن التغيير هو مجرد فصل استخدام USE_X11 (والذي سبق أن خلط بين linux و X11) مع توليفات من OS_LINUX و USE_X11 أو USE_OZONE .

ستتم إزالة USE_X11 من قاعدة كود الكروم قريبًا عندما نقترب من وجود Ozone / X11 و Ozone / Wayland بدون X11 عادي.

أيضًا ، لتتمكن من استخدام مربعات حوار الملفات و gtk ، يجب عليك تجميع الأوزون باستخدام use_glib = true. IIRC ، يتم تعيين use_gtk على صواب افتراضيًا.

فهل من الأفضل استبدال if use_x11 بـ if !use_ozone and os_linux ؟ أو أي شيء آخر؟

سأحاول استخدام علم use_glib. أعتبر أن حوارات الملف تعمل بعد ذلك؟

نعم صحيح. رغم ذلك ، فإن الطريقة لا تعمل بعد. لكن يمكنك استخدامها.

سيكون هذا هائلا حقا. ربما يمكننا أيضًا التمرير على نظام لينكس ليكون لطيفًا كما هو الحال في النوافذ. (حركي)

مستخدمو Arch: https://aur.archlinux.org/packages/electron-ozone

لقد عملت مع أحدث VSCode (تحتاج التعليمات البرمجية git فقط إلى التصحيح لاستخدام electron بدلاً من electron6 بعد https://github.com/microsoft/vscode/pull/ 83796)

هناك بعض الأعراض الغريبة (ربما أعلق على رمز لا أفهمه) - لكنه يعمل. حادة جدا ، وحجمها صحيح جدا!

hedgepigdaniel هل

../../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?)

يبدو أن هذه قد يتم إصلاحها من خلال التزاماتك؟

تحديث : نحن (Igalia) نعمل حاليًا على ترحيل Chromium / Linux القديم (المعروف أيضًا باسم: Aura / X11) إلى Ozone ( crbug.com/789065 ) ، بحيث يمكن اختيار الواجهة الخلفية X11 أو Wayland Ozone وفقًا لذلك في وقت التشغيل. علاوة على ذلك ، هناك مطلب للقدرة على التبديل بين الأوزون والإرث في وقت التشغيل كآلية احتياطية في حالة حدوث أخطاء خلال هذه الفترة الانتقالية. بمجرد الانتهاء من ذلك ، وصقل الواجهة الخلفية لـ wayland واختبارها بشكل صحيح ، نأمل أن تشق طريقها إلى إصدارات Chromium / Linux الرسمية.

إنه لأمر رائع أن نسمع أن vscode / الإلكترون قادر بالفعل على العمل فوق أوزون الكروم / وايلاند (أحتاج إلى إيجاد بعض الوقت لتجربته بنفسي :)). شكرا للعمل والمشاركة هذا.

لمزيد من المتابعة ، يرجى التواصل معنا على {nickdiego، msisov} @ igalia.com

لا أصدق أن هذا سيحدث أخيرًا ، الحلم يتحقق ... آمل ألا يستغرق دمج تصحيحات ppc64le كل هذا الوقت 🤞

يبدو أن بناء الأوزون الإلكتروني يسير بسلاسة ، ولكن بعد ذلك عندما أقوم بتشغيل الإلكترون:

electron -i

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

من فضلك اترك هنا ماذا تفعل هذين الأمرين

echo $WAYLAND_DISPLAY
echo $XDG_RUNTIME_DIR

تبين.

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

أحصل على نفس الخطأ تمامًا مثل garth باستخدام حزمة الأوزون الإلكتروني hedgepigdaniel (أنا أيضًا على القوس / التأثير).

على نفس الجهاز ، يعمل موضع الخطأ في الإدخال:

حسنًا ، حاول تشغيل التطبيق بالطريقة التالية:

WAYLAND_DISPLAY = 1. / التطبيق الخاص بك.

هل يعمل الآن؟ إذا لم يكن كذلك ، يرجى محاولة التشغيل باستخدام WAYLAND_DEBUG = 1 ومشاركة الإخراج. شكرا

أحصل على نفس الخطأ تمامًا مثل garth باستخدام حزمة الأوزون الإلكتروني hedgepigdaniel (أنا أيضًا على القوس / التأثير).

على نفس الجهاز ، يعمل موضع الخطأ في الإدخال:

لم أراه. شكرا لنشر هذا الرابط هنا. سيتم فرزها وتثبيتها.

تحت Sway:

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

لقد اختبرت أيضًا مع Gnome وهو يعمل.

يجب أن يكون

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


وفقًا لحسدتي ، يجب أن تكون wayland-0 ، لكنني حاولت 0 و 1 بنفس التأثير. هنا هو إخراج التصحيح.

 ~ 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

ربما فاتني ، ولكن ما هي مواصفات نظامك؟

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 

أفترض أنك تستخدم Mesa و GPU الخاص بك هو Intel واحد ، أليس كذلك؟

هل يمكنك الانتقال إلى ui / ozone / platform / wayland / host / wayland_connection.cc [1] وتغيير هذا

display_.reset(wl_display_connect(nullptr));

ل

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

وبالمناسبة ، هل لديك تجميع الكروم مع نظام libwayland؟ يمكن أن يكون هذا أيضًا مشكلة.

أنا أستخدم AUR ، لذا لست متأكدًا من libwayland. أنا أقوم بمزامنة الريبو لإجراء التغيير الذي اقترحته.

ونعم ، أنا أدير Mesa / Intel لأن Nvidia لا تبيع سوى الطوب الخامل الذي لا يفعل شيئًا سوى إضافة وزن إلى كمبيوتر محمول يعمل بنظام Linux.

أنا أشير إلى هذا - https://cs.chromium.org/chromium/src/third_party/wayland/features.gni؟type=cs&q=use_system_libwayland&g=0&l=8

إذا لم تكن قد لمست هذا gn arg ، فحاول ضبطه على true وأعد التحويل البرمجي.

msisov لقد غيرت كلا من ملفات src كما اقترحت

لقد قمت أيضًا ببناء حزمة AUR electron-ozone وفشلت أيضًا ولكن مع ما يلي:

~ # 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'

تمكنت من تشغيل Electron تحت Wayland من خلال إعادة تأسيس تصحيحات hedgepigdaniel أعلى 8.2.1 .

سيكون من الرائع أن يقوم hedgepigdaniel بتحديث حزمة AUR للأوزون الإلكتروني بهذه التغييرات (يمكنني إرسال طلب سحب إذا كان ذلك يساعد).

تحرير: تم تحديث حزمة AUR الأوزون الإلكتروني بهذه التغييرات.

أحد الأسباب المحتملة لفشل حزمة electron-ozone AUR لبعض مستخدمي sway ربما كان بسبب إزالة xdg-shell v6 غير المستقر في sway v1.4 (https://github.com/swaywm/sway/ pull / 4466) وهو ما كان يستخدم في Electron 7.1.8 / Chromium 78 ( الكروم # 997631 ).

vially ممتاز!

لقد صنعت https://github.com/hedgepigdaniel/pkgbuild-electron-ozone والتي تمثل مرآة لحزمة AUR - نرحب بك لتقديم العلاقات العامة وسأقوم بنشرها.

تم تحديث الحزمة ، شكرًا vially

يمكن أن تؤكد أن البناء الجديد يعمل على التأثير .

على الرغم من أنه لا يبدو أنه يعمل مع إنشاء vscode code-git - أحصل على نافذتين code-git و Code - OSS كلاهما فارغين - ولكن ربما هذه مشكلة في vscode .

يمكن أن تؤكد أن البناء الجديد يعمل على التأثير .

على الرغم من أنه لا يبدو أنه يعمل مع إنشاء vscode code-git - أحصل على نافذتين code-git و Code - OSS كلاهما فارغين - ولكن ربما هذه مشكلة في vscode .

لا أعتقد أنه تم تحديث VSCode للعمل مع الإلكترون 8: https://github.com/microsoft/vscode/blob/304fc630f7f46db67a33def6b8dd3f8728033546/package.json#L99

ربما يكون من الخطأ أن حزمة code-git لم يتم تحديثها بعد لتعتمد على الإلكترون 7 بدلاً من الإلكترون.

أرى ، لقد جربت بعض التطبيقات الأخرى ، مثل drawio-desktop ويبدو أنها تعمل بشكل جيد مع الإصدار electron-ozone .

هل هناك أي فرصة لإضافة علامة بناء "rtc_use_pipewire = true" لدعم مشاركة شاشة Wayland؟

عندما لا تكون على قوس ما هي الخيارات للحصول على بناء الطريق؟
متى يشحن الإلكترون مع الأوزون؟

لا أعتقد أنه تم تحديث VSCode للعمل مع الإلكترون 8

لسوء الحظ ، هذا هو حاجز الطريق الحقيقي لقدرته على استخدام Wayland. لا يمكن استخدامه على XWyaland لأن تطبيقات XWayland التي تم تحجيمها ضبابية للغاية.

نظرت إلى فرع الإلكترون 8 ويبدو أنه لا يوجد أي شيء خاص به ، لقد صدموا فقط نسخة الإلكترون: https://github.com/microsoft/vscode/compare/electron-8.0.x

لذلك يبدو أنه من المفترض أن يعمل vscode مع الإلكترون 8 (ولكن قد يكون هناك بعض الأخطاء ، لأنه لا يزال محصورًا في فرعه الخاص).
nostdm هل يمكنك التحقق مما إذا كان يعمل بشكل أفضل على Xorg؟

لقد جربت vscode مع الإصدار electron-ozone (الإصدار 8.2.1 المذكور أعلاه) وقد بدأ بالفعل ولكن به بعض المشكلات التي تسببت في تعطله كثيرًا لدرجة أنني اضطررت إلى ذلك ارجع إلى إصدار X11 / XWayland.

YMMV وأنا أشجعك على تجربته لأنه مباشر جدًا للبناء. بالنسبة للبني الخاص بي ، قمت للتو باستبدال electron7 بـ electron في PKGBUILD هذا :

-- _electron=electron7
++ _electron=electron

كانت معظم الأعطال التي رأيتها مع vscode بسبب بعض الأخطاء التي واجهتها أيضًا في الإصدار 80 chromium-ozone (معظمها يتعلق بتلميحات الأدوات). والخبر السار هو أن معظم هذه الحوادث قد ولت الآن في الإصدار 81 من chromium-ozone بفضل العمل المستمر الذي قام به فريق Igalia.

بالنسبة لي ، إذا تبين أن الإصدار 9 من الإلكترون (الذي سيعتمد على الإصدار 82 من الكروم: # 22932) ثابتًا مثل الكروم 81 في Wayland ، فعندئذ سأقوم بالتبديل لتشغيل vscode محليًا على Wayland وتخلي عن XWayland للأبد. أو هذه هي الخطة على الأقل: مبتسم:

هل هناك أي فرصة لإضافة علامة بناء "rtc_use_pipewire = true" لدعم مشاركة شاشة Wayland؟

تم القيام به على الإصدار 8.2.2 الجديد.

شكرا! هذه أخبار ممتازة. سأختبرها عندما تسنح لي الفرصة.

شكرا لك يعملhedgepigdaniel.
أكتب Gentoo ebuild بناءً على PKGBUILD الخاص بك:
https://github.com/12101111/overlay/blob/master/dev-util/electron/electron-8.2.3.ebuild
يمكن أن يعمل تحت الطريق (التأثير) ، ويتعطل عند تحميل vscode (فرع الإلكترون 8.0.x).
ولا يمكن فتحه في جلسة X:

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

هل ozone_platform_x11 غير مستقر أكثر من ozone_platform_wayland؟

@ 12101111 يعتبر Ozone / X11 قيد العمل ، لذا نعم ، لا يزال غير مستقر تمامًا. هل يمكنك تقديم مزيد من التفاصيل حول بيئة X الخاصة بك؟ DE / WM والإصدار؟ أقوم بتشغيله يوميًا في DEs / WMs مختلفة مع عدم وجود مشكلات من هذا القبيل.

nickdiego أنا أستخدم Xorg server 1.20.8 ، mesa 20.0.4 ، gtk 3.24.18 ، sway 1.4 ، awesome wm 4.3.
لا يعمل بناء الأوزون تحت X أو 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

لم أصاب بهذا الخطأ المحدد. هل أنت قادر على تشغيل Chromium ozone / x11 على بيئتك؟ نظرًا لأنه قيد التطوير المكثف ، سيكون من المثير للاهتمام التحقق من أحدث الإصدارات . إذا كانت الإجابة بنعم ، فقد يكون شيئًا خاصًا بالإلكترون في تهيئة gtk / الأوزون. أود أيضًا إلقاء نظرة على المشكلات / الإصلاحات التي أبلغ عنها المستخدمون الآخرون ببعض التعليقات أعلاه: point_up :. لاحظ بعضهم تعزيز الاستقرار في أحدث الإصدارات.

_لأنها لقطة في الظلام ، فقد تكون مرتبطة بهذه المشكلة ، والتي في حسابي كانت تسبب أعطالًا فقط عند محاولة فتح مربعات حوار gtk ، وليس عند بدء التشغيل.

nickdiego أعتقد أن السبب هو أنهم يستخدمون القناة الثابتة ، والتي في حالتهم هي "" 80.0.3987.163 "". لا يمكن الاعتماد عليها في حالة Ozone / X11 / Wayland نظرًا لوجود تغييرات مستمرة في الجذع.

أحاول بناء chromium-83.0.4103.15 ، فهو يعمل على wayland ، وأحتاج إلى chromium --ozone-platform=x11 للتشغيل على X.
لكن لا يمكن إطلاق الإلكترون على 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 نعم ، هذا منطقي.

أحاول بناء chromium-83.0.4103.15 ، فهو يعمل في wayland ، وأحتاج chromium --ozone-platform = x11 للتشغيل على X.
لكن لا يمكن إطلاق الإلكترون على X:

لذلك ، يبدو أن هناك بعض المشكلات الخاصة بالإلكترون في تهيئة Gtk / Ozone. هل يمكن لأي شخص تأكيد هذه المشكلة في الإعدادات الأخرى؟ آسف ولكن ليس لدي الوقت حاليًا للنظر في الأمر (ليس لدي حتى بناء إلكتروني محلي).

هل أحتاج إلى تغيير ozone_auto_platforms إلى "صحيح"؟

في الوقت الحالي ، يقوم ozone_auto_platforms بتعيين x11 كخلفية افتراضية ، حيث لا يزال لدينا اكتشاف تلقائي للنظام الأساسي على سطح مكتب Linux.

أقوم ببناء 8.2.3 الإلكترون باستخدام CXXFLAGS = -O1 -g ، وأحصل على تتبع خلفي مع شفرة المصدر:

$ 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

أعتقد أن https://github.com/chromium/chromium/commit/182d586fee5b5f9053b5702fcfc847f18ea5ec79 سيصلح هذا وسأحاول دعم هذا الإصلاح إلى الكروم 80
تحرير: هناك عطل آخر بعد تطبيق هذا التصحيح

$ 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

لا أحد يعرف كيفية تجميع الإلكترون لدعم سكان وايلاند؟ (خطوة بخطوة) وتشغيل تطبيقات الإلكترون في وايلاند (ويستون ، إلخ ...).
استغرق الأمر ساعات لتجميع الإلكترون وفشلت عدة مرات.

caijw ، قد لا تكون PKGBUILD للأوزون الإلكتروني للحصول على أدلة على بنائه. ما أفهمه هو أنه لا يزال تجريبيًا للغاية.

سيتخطى vscode الإلكترون 8 ويستخدم الإلكترون 9 في الإصدار التالي ، والذي يعتمد على الكروم 83 ويعمل بثبات مع الأوزون-وايلاند والأوزون-x11. لكن الإلكترون 9 لا يزال بحاجة إلى بعض البقع لتجميعها مع الأوزون

أعلام الأوزون المدمجة في الكروم في الطريق https://bugs.chromium.org/p/chromium/issues/detail؟

هذه هي محاولتي الخاصة بالعمل قيد التقدم لإعادة وضع قاعدة فرع الإلكترون الخاص بي على v9.xx: https://github.com/electron/electron/compare/9-xy...hedgepigdaniel : arch-9؟ expand = 1

حاليًا من الجيد تشغيل electron-quick-start ، لكن ليس كثيرًا. غالبًا ما يكون العرض هو عدم ظهور النوافذ.

لقد قمت أيضًا بتحديث https://aur.archlinux.org/packages/electron-ozone/

أرحب بالمساعدة إذا كان بإمكان أي شخص حل المشكلة - لا تتردد في تقديم العلاقات العامة إلى مفترقتي. لا تتردد أيضًا في أخذ تصحيحي وتحويلها إلى شيء مصقول / قابل للدمج - ليس لدي الوقت حقًا للقيام بذلك بنفسي.

شكرا لك بقعhedgepigdaniel.
لقد قمت بتجميعها ووجدت بعض المشكلات:

  1. لا يمكن إغلاق النافذة (المذكورة في AUR)
  2. قم بتشغيل electron-9 --ozone-platform=wayland لكن النافذة لا تظهر. electron-9 --ozone-platform=x11 يعمل بدون مشكلة
  3. يحتاج vscode إلى متغير البيئة ELECTRON_RUN_AS_NODE=1 لبدء التشغيل ، لكن ELECTRON_RUN_AS_NODE=1 electron-9 --ozone-platform=x11 حصل على خطأ: electron-9: bad option: --ozone-platform=x11
  4. السحب والإفلات لا يعملان (على سبيل المثال: مستكشف الملفات أو علامات التبويب في vscode)

图片

أجريت المزيد من الاختبارات باستخدام حزم القوس ،

إنه يعمل ، بدون أي نوافذ فارغة أو أي شيء. المشكلة الرئيسية التي وجدتها هي أنه إذا قمت بالتمرير باستخدام عجلة الماوس داخل قوائم التطبيق ، فستختفي جميع النوافذ. أعتقد أن هذا الخطأ قد تم إصلاحه في أحدث إصدارات الكروم.

hedgepigdaniel أعتقد أن علاقات عامة لدمج التغييرات في الفرع الرئيسي؟

هل لدى أي شخص ملفات بناء أوبونتو؟ أنا منفتح على المساعدة في إصلاح أخطاء Wayland :)
هل يعرف شخص ما راجع للشغل. أي مكون كسر دعم السحب والإسقاط؟ الكروم أو الأوزون أو الإلكترون أو vscode؟

hedgepigdaniel ما هي مشكلة إغلاق النوافذ والقوائم؟ أي شيء يمكنني البدء منه إذا كنت أرغب في العمل على الإصلاح؟

@ ninja- لا يعمل السحب والإفلات على Chromium على Linux ، لذلك لا أعتقد أنه خطأ في الإلكترون أو vscode.

@ ninja- لا يعمل السحب والإفلات على Chromium على Linux ، لذلك لا أعتقد أنه خطأ في الإلكترون أو vscode.

WhyNotHugo ما هو الإصدار (أو الالتزام الرئيسي) من Chromium Ozone / Wayland الذي تستخدمه؟ لدي بنية جديدة من الجذع ويعمل DnD بشكل جيد.

أنا أستخدم Chromium 85.0.4183.83 ، لكن ليس إصدار Ozone. ليس لدي الموارد اللازمة لبناء نسخة الأوزون من المصدر.

WhyNotHugo لدينا أخبار

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

رغم ذلك ، قد يتم إرجاع التصحيح مرة أخرى. نحن بحاجة إلى الانتظار بضعة أيام حتى تتمسك.

لقد حاولت بناء الكروم باستخدام الأوزون من نقطة الصفر قبل شهر وكان الأمر عبارة عن فوضى تامة: / لم أستطع تجميعه

@ هل تم إصلاح مشكلة إغلاق النافذة أيضًا؟

@ ninja - أنا مندهش وآسف في نفس الوقت لأنك لم تستطع تجميع الأوزون. ومع ذلك ، نحن ، المطورين ، نفعل ذلك كل يوم دون أي مشاكل.

ما نوع الإرشادات التي استخدمتها؟ هل جمعت الأوزون من المنبع؟ أو هل استخدمت بعض وصفات الطرف الثالث؟ يرجى ملاحظة أننا لسنا مسؤولين عن هؤلاء وأنهم يخضعون لصيانة مشاريع المصب.

أنا أستخدم Chromium 85.0.4183.83 ، لكن ليس إصدار Ozone. ليس لدي الموارد اللازمة لبناء نسخة الأوزون من المصدر.

مسكتك. إذن Chromium X11 / XWayland ، في هذه الحالة. لقد واجهت أيضًا بعض المشكلات مع XWayland ضمن Sway :( على سبيل المثال: سحب علامة التبويب معطلة تمامًا ، إلخ.

@ هل تم إصلاح مشكلة إغلاق النافذة أيضًا؟

@ النينجا - أي واحد؟ هل أبلغت عنها في crbug.com؟ لقد قمنا مؤخرًا بإصلاح العديد من الأخطاء ، والعديد منها يتعلق بالنوافذ المنبثقة.

nickdiego لم

عملت مثل السحر هنا. إلكترون وايلاند الأصلي يجلب لي الكثير من الراحة ، شكرًا (AUR + recompile vscodium)

متحمس جدًا هنا كمشرف على تطبيق Electron.

هل هذا يعني أن بناء الإلكترون في المستقبل سوف يدعم Wayland بشكل أصلي أو أنه سيتعين علي القيام بشيء خاص لتطبيقي؟

كلكم رائعون.

لقد اختبرت مؤخرًا على Wayland مع Gnome ولكن لم يكن هناك أي إطار حول النافذة.

MyIsaak هل استخدمت دليل بيانات المستخدم السابق؟ أعتقد أن الجواب نعم. هل تم ضبط إعدادات Chrome على "استخدام شريط عنوان النظام والحدود" من دليل البيانات القديم؟ إذا كانت الإجابة بنعم ، فهذا متوقع ، لأن دعم xdg-decorations في طريقه.

msisov لقد قمت للتو بإعادة بناء المشروع بأكمله مرة أخرى ولا تزال النتيجة نفسها. هل أحتاج إلى تغيير إعدادات الكروم قبل البناء لأنني فعلت ذلك فقط بعد البناء؟

بشكل افتراضي ، سيحاول الكروم إعادة استخدام دليل بيانات المستخدم الحالي.

حاول استخدام شيء فارغ. على سبيل المثال. - —user-data-dir = / tmp / blah

msisov حسنًا ، لقد "window.titleBarStyle": "custom" في settings.json . شكرا للمساعدة!

لقد جربت استخدام الكروم الرئيسي مع دعم الأوزون وتشغيله على غلاف جنوم ينتج عنه استخدام وحدة المعالجة المركزية بنسبة 100٪ إلى الأبد ولا يبدأ الكروم :(
يبدأ على ما يرام في ويستون :(

نظام التشغيل: Ubuntu 20.04

@ ninja- ، يرجى التشغيل باستخدام WAYLAND_DEBUG = 1 ولصق السجل هنا. يحتمل أن تكون مرتبطة بـ https://crbug.com/1123382 . الإصلاح في طريقه.

msisov نعم هذا هو! هل يمكنك بالمناسبة. التعامل مع القضية بشكل صحيح عندما تقوم قذيفة جنوم بفصل اتصال wayland الخاص بك؟ لأنه في الوقت الحالي يستمر في الدوران مع وحدة المعالجة المركزية 100٪: /

[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- ، في حالة قيامك بتجميع الكروم بنفسك ، فإن هذا التصحيح يجعل من الممكن إيقاف تشغيل المتصفح بأمان + يجعل من الممكن طباعة رسالة الخطأ التي يرسلها libwayland-client ويصلح هذا التصحيح مشكلة المخزن المؤقت غير المدعوم. يمكنك تطبيقها والتحقق من حل المشكلة.

مقياس كسري يعمل كالسحر في Fedora 32 مع جنوم

Chrome 84 مقابل Chrome Dev 87 (تم تمكين Wayland)
chrome

ستكون هذه خطوة كبيرة لتطبيقات الإلكترون ومستخدمي الطرق

حسنًا ، يجب أن أعترف أنه يعمل جزئيًا ويعتمد على القيمة التي تمر بها wayland. المشكلة هي أن wl_output لا يدعم القياس الجزئي. وإذا تم تقريب 150٪ إلى 200٪ ، فسيحصل الكروم على القيمة "الصحيحة".

بخلاف ذلك ، يجب استخدام xdg_output (سيحسب Chromium القياس من الحجم المادي والمنطقي للشاشة). وهذا العمل قيد التطوير الآن.

حسنًا ، يجب أن أعترف أنه يعمل جزئيًا ويعتمد على القيمة التي تمر بها wayland. المشكلة هي أن wl_output لا يدعم القياس الجزئي. وإذا تم تقريب 150٪ إلى 200٪ ، فسيحصل الكروم على القيمة "الصحيحة".

أرى ، من المنطقي ، أنني كنت أستخدم 150٪ للاختبار

msisov وصل الإصلاح الخاص بك أخيرًا في إصدار مطور أسبوعي - يعمل بشكل رائع! شكرا!

في السابق ، كان Chrome يتجمد على جهاز الكمبيوتر الخاص بي كل بضع ثوانٍ - ليس لدي أي فكرة حقًا عما إذا كان هذا هو خطأ kernel أو amdgpu أو chromium أو xwayland أو gnome-shell: /
آمل أن يكون الأمر أفضل الآن مع Wayland النقية.

@ refi64 شكرًا جزيلاً على طرح هذا الأمر! مثير للاهتمام

بما أن هذا لم يعد يحجبه المنبع ، فما هي الخطة التي تمضي قدمًا؟ يتم شحن Chrome 87 (الآن في الإصدار التجريبي) مع wayland كمنصة أوزون يمكن تمكينها باستخدام google-chrome-beta --enable-features=UseOzonePlatform --ozone-platform=wayland من Chrome PPA الرسمي. حاليًا ، electron@beta لكن أي إصدار من الكروم لا يدعم wayland في النظام الثنائي الذي تم إنشاؤه مسبقًا.

يبدو أن هناك بالفعل بعض الجهد من vially لإعادة

TLDR

يشير اعتماد كروميوم للإلكترون حاليًا إلى إصدار يتعطل عند بدء التشغيل في وايلاند ( الكروم # 1128997 ).

مرة واحدة لم يعد هذا هو الحال (على سبيل المثال: بعد مطبات الكروم التالية أو النتوءين التاليين) أخطط لضبط تصحيحات hedgepigdaniel ومحاولة تصميمات Electron الرسمية.

تفاصيل تقنية

بقع Pre Chromium 87

ترجع إحدى التحديات التي تواجه نشر تصحيحات Wayland الحالية إلى ظهور Electron مؤخرًا لـ Chromium إلى الإصدار 87 والذي يمكّن مسارات رمز الأوزون وغير الأوزون في نفس البنية (

تمت كتابة تصحيحات Electron Wayland هذه بافتراض أن البناء هو إما بناء X11 ( USE_X11 ) أو بناء Ozone ( USE_OZONE ) ، والذي كان صحيحًا حتى الإصدار 87 ، لكنه لم يعد هو القضية بعد ذلك.

هذا يعني أن التصحيحات تحتاج إلى تعديل لمراعاة حقيقة أن كلا من USE_X11 و USE_OZONE يمكن أن يكونا صحيحين في نفس الوقت.

بقع Post Chromium 87

كانت خطتي هي أخذ التصحيحات الموجودة ، وتعديلها عن طريق استعارة الأنماط من هذا الفرع ) ثم نقلها إلى Electron.

ومع ذلك ، نظرًا لوجود خطأ تم إصلاحه في هذه الأثناء في Chromium ( الكروم # 1128997 ) ولكن لم يتم تحويله بعد إلى Electron ، فإن شوكة Wayland الخاصة بي تنشئ حاليًا بنية تفشل في البدء في Wayland (تعطل Wayland electron --enable-features=UseOzonePlatform --ozone-platform=wayland مع نفس الخطأ الوارد في تقرير خطأ Chromium).

يبدو أن تشغيل نفس بنية الإلكترون باستخدام Ozone / X11 ( electron --enable-features=UseOzonePlatform --ozone-platform=x11 ) يعمل بشكل جيد مع هذه التصحيحات ، وهي علامة جيدة على ما أعتقد.

لذا في الوقت الحالي ، أنا فقط في انتظار المزيد من مطبات الكروم في الإلكترون والتي يجب أن تتخلص من المشكلة الحالية ، ولكن من المحتمل جدًا أن تكشف عن أخرى .

وأنا أعلم أنه سيكون هناك شيء آخر لأنني قمت يدويًا بنقل الكروم # 2434928 وما زال البناء يفشل في البدء ، ولكن هذه المرة باستخدام تتبع تكديس مختلف. ليس لدي أي فكرة حاليًا عن سبب حدوث ذلك أو كيفية إصلاحه ، لكني آمل أن يتم إصلاحه تلقائيًا بواسطة نتوء (نتوءات) Chromium التالية.

يعد هذا جزءًا من تتبع المكدس إذا كان أي شخص مهتمًا بإلقاء نظرة. يبدو أنه يشير إلى أنه قد يكون مرتبطًا أيضًا بتهيئة المخزن المؤقت (ربما الكروم # 2343545 ؟) ، لكن لا يمكنني الجزم بذلك. ربما يرن جرسًا إلى msisov أوnickdiego.


تتبع المكدس

[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

الخطوات التالية

لقد كنت أنتظر هذا شخصيًا لبضع سنوات حتى الآن ومع التقدم الأخير في Chromium ، يبدو أنه يقترب بالفعل الآن.

ولكن لا يزال هناك عدد قليل من الأخطاء والمشكلات المتبقية وهذا هو السبب في أنني أراقب بنشاط كلاً من Chromium و Electron لمعرفة ما إذا كان هناك أي شيء يمكنني المساعدة فيه لجعل هذا يحدث بشكل أسرع

على الجانب المشرق ، تعمل تصحيحات Electron 10 حاليًا بشكل رائع بالنسبة لي وأنا أقوم بتشغيل Visual Studio Code و Slack محليًا في Wayland دون أي مشاكل لبضعة أسابيع الآن (على الرغم من أن vscode يتطلب تصحيحًا صغيرًا لجعله متوافقًا مع Electron 10). لذا حتى يشقوا طريقهم إلى تصميمات Electron الرسمية ، أعتقد أن هذه طريقة رائعة لتشغيل Electron على Wayland حاليًا.

شكرا جزيلا على كل ما تبذلونه من جهود متواصلة في هذا الشأن.

vially تذكير سريع عند نشر هذه التصحيحات ، بما في ذلك علامة إنشاء Chromium RTC_USE_PIPEWIRE=true شأنه تمكين مشاركة الشاشة مع تطبيقات الإلكترون (MS Teams / Slack / إلخ) من موتر و KDE و wlroots.

سيكون هذا العلم مفيدًا في الواقع حتى أثناء تشغيل الإلكترون في XWayland ، ولكن من المنطقي بالتأكيد توحيده بمجرد زيادة دعم Wayland إلى IMO.

vially ، هل يمكنك الإبلاغ عن المشكلة

بالتأكيد ، كنت أخطط للقيام بذلك ولكن نظرًا لأنني لست متأكدًا تمامًا من أنه خطأ في Chromium ، أعتقد أنني سأحقق فيه أكثر قليلاً أولاً.

من المحتمل تمامًا أن يكون هذا خطأ في بقع Electron Wayland أو ربما يكون شيئًا تم إصلاحه في المنبع Chromium بالفعل لذا أريد استبعاد ذلك قبل إنشاء خطأ Chromium.

بعيدًا عن الموضوع قليلاً: أعتقد أنك يجب أن تكون على دراية به بالفعل ، ولكن إذا لم يكن الأمر كذلك ، 87.0.4280.11 (والذي لم يكن موجودًا في 87.0.4278.0 ) يمنع Chromium من الإطلاق على Wayland: الكروم # 1136287 (مكرر بواسطة # 1136252 ). لا يؤثر على الإلكترون بأي شكل من الأشكال (أو على الأقل ليس بعد) لكنني اعتقدت أنني سأذكره في حال لم تكن قد رأيته وقد تتمكن من المساعدة في فرزه. تضمين التغريدة

vially ، يجب أن يتم إصلاحه من خلال https://chromium-review.googlesource.com/c/chromium/src/+/2464347 .

شكراً جزيلاً لكل من بذل الوقت والجهد في هذا! شكرًا msisov والناس Igalia وشكرvially.

يتوفر أيضًا ثنائي مترجم مسبقًا بـ electron-nightly sind بضعة أيام لكل من يريد تجربة ذلك.


لم أتمكن من العثور على علامة RTC_USE_PIPEWIRE=true في أي مكان في هذا الريبو. تبدو هذه خطوة منطقية (ولكن ليس فقط) لتطبيقات الطريق البري وبيئات سطح المكتب. هل يجب أن يكون هناك قضية منفصلة لهذا؟

لم أتمكن من العثور على علامة RTC_USE_PIPEWIRE=true في أي مكان في هذا الريبو. تبدو هذه خطوة منطقية (ولكن ليس فقط) لتطبيقات الطريق البري وبيئات سطح المكتب. هل يجب أن يكون هناك قضية منفصلة لهذا؟

ربما ، كنت أتمنى أن يتم تضمينها هنا. إنه إصلاح بسيط يمكن إجراؤه في أي وقت. لقد اكتشفت مؤخرًا المكان الذي يجب أن يذهب إليه (على ما أعتقد) ، لذلك سأحاول تقديم بيان عام غدًا. المشكلة هي أنني بحاجة إلى وقت وتطبيق نموذج لاختباره.

danshick كنت أخطط لإرسال طلب سحب مقابل RTC_USE_PIPEWIRE=true أيضًا ، لكن السبب الوحيد الذي لم أفعل ذلك بالفعل هو أنني لم أتمكن بعد من جعل مشاركة الشاشة تعمل مع الكروم على جهازي (بعد تمكين العلم). ولم أرغب في تقديم طلب سحب لشيء لا يمكنني اختباره.

ولكن سيكون من الرائع أن يتمكن شخص قادر على اختبار هذا من معرفة كيفية تمكينه في Electron وتقديم طلب سحب.

ولكن سيكون من الرائع أن يتمكن شخص قادر على اختبار هذا من معرفة كيفية تمكينه في Electron وتقديم طلب سحب.

سأعطيها فرصة وأربط العلاقات العامة هنا عندما يكون لدي الوقت

سأعطيها فرصة وأربط العلاقات العامة هنا عندما يكون لدي الوقت

يا رجل ، الحصول على الإلكترون وبنائه عمل روتيني. لقد تم سحب كل شيء ، أخيرًا ، لذا آمل أن أتمكن من إجراء التغيير وبناءه واختباره في اليومين المقبلين.

تحرير: --script-executable=/usr/bin/python2 ، نسيت أن gn هو نصير python2.

Edit2: ... وهذا لا يزال غير كافٍ sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py

Edit3: لم أتمكن من الحصول على إلكترون لإنشاء ، والحصول على أخطاء في تجميع ملف اختبار الوحدة التي يجب ألا تكون مرتبطة بعلامة rtc_use_pipewire=true . أعلم أنه يمكن القيام بذلك لأن حزمة الأوزون الإلكتروني في AUR تتضمن هذا العلم كحجة إضافية لـ 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.


بالنسبة لأي شخص فضولي ، فإن التصحيح الذي أحاول إنشاؤه هو هذا فقط ...

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

لا أعرف ما إذا كان ينبغي أن أضع هذا هنا ، ولكن حتى الآن لدي إلكترون يعمل تحت Wayland باستخدام electron-nightly و --enable-accelerated-mjpeg-decode --enable-accelerated-video --ignore-gpu-blacklist --enable-native-gpu-memory-buffers --enable-gpu-rasterization --enable-features=UseOzonePlatform --ozone-platform=wayland كوسيطات إطلاق. هناك شيء واحد يحدث ، وهو: لا توجد أشرطة عناوين في أي نافذة.

هل يجب أن أفتح عددًا جديدًا أم يمكننا مناقشته هنا؟

juxuanu وما

@ النينجا - انها قذيفة جنوم ، حتى الغمغمة. أعتقد أننا وجدنا خطأ ، إذن.

هل يستخدم الإلكترون زخارف جانب الخادم أو جانب العميل؟ جنوم يدعم جانب العميل فقط.

juxuanu هذا مثير للاهتمام لأنني أواجه نفس الشيء على مستقر الكروم (86.x ...) المصنوع من الأوزون. لذلك يبدو هذا وكأنه خطأ ما ولكنه بالتأكيد ليس تراجعا عن الاستقرار. لماذا تعتقد أن هذا خطأ في الغمغمة؟ يبدو أن كل تطبيق محلي آخر في Wayland يعمل على Gnome ، باستثناء Chromium. هذا يبدو وكأنه خطأ في Chromium أكثر من خطأ كبير.

لماذا تعتقد أن هذا خطأ في الغمغمة؟ يبدو أن كل تطبيق محلي آخر في Wayland يعمل على Gnome ، باستثناء Chromium. هذا يبدو وكأنه خطأ في Chromium أكثر من خطأ كبير.

هذا لأن Gnome قرر عدم دعم الزخارف من جانب الخادم مما يعني أن جميع التطبيقات يجب أن ترسم الزخارف الخاصة بها (https://gitlab.gnome.org/GNOME/mutter/-/issues/217).

هذا يعني أنه لكي تبدو نوافذ الإلكترون "عاقلًا" في جنوم ، يجب أن يحدث أحد هذين الإجراءين:

  • يحتاج Gnome إلى البدء في دعم الزخارف من جانب الخادم (من خلال قراءة المشكلة المرتبطة ، يبدو هذا غير مرجح) ، أو
  • يحتاج شخص ما إلى إضافة دعم للزينة من جانب العميل في Electron

vially أوه أعتقد أنني أخطأت في

لقد فكرت في هذا الأمر أكثر قليلاً وبالنظر إلى أن Electron تستخدم بالفعل GTK لبعض الأشياء ، فربما لن يكون من الصعب جدًا استخدام GTK لرسم شريط العنوان أيضًا عند التشغيل في جنوم. في حالة ما إذا كان ذلك مفيدًا لشخص يرغب في تجربة هذه المحاولة ، فهذا ما يبدو أن Flutter يفعله لتمكين زخارف شريط العنوان بشكل مشروط في جنوم.

رأي شخصي

أنا لست من مستخدمي جنوم ، لذا ليس لدي حصان في هذا السباق ، لكني ما زلت أتمنى أن يستمع جنوم إلى الملاحظات البناءة ويعيد النظر في موقفه من هذا.

أو ربما يتم تحرير الديكور الليبي في النهاية مما قد يخفف من هذه المشكلة إلى حد ما. على الرغم من أنني لست متأكدًا مما إذا كانت مطالبة التطبيقات بالارتباط بمكتبة أخرى لجعلها تعمل بشكل صحيح في مؤلف معين واحد (حتى لو كانت شائعة إلى حد ما) هي أفضل نتيجة لذلك.

بصراحة ، أفضل عدم تطبيق زخرفة النافذة بأكملها في الإلكترون. يتخذ مطورو GNOME موقفًا قويًا مفاده أن "أي شيء لم يتم القيام به بطريقتهم غير مدعوم" ، لذا فإن الاضطرار إلى حل هذا الأمر في جميع تطبيقات العميل يضيف تعقيدًا إلى جميع التطبيقات النهائية.

إذا تم كسر الزخارف في جنوم لأن المطورين يصرون على أن "هذا ما يجب أن يكون عليه الأمر" ، فليكن. محاولة التغلب على أخطاء جنوم تستمر في جلب المشاكل أو التناقضات إلى بيئات غير جنوم.

لقد كسرت ما يكفي من التطبيقات التفاصيل الدقيقة بالفعل باسم محاولة العمل بشكل صحيح في جنوم. أفضل أن أبذل جهدًا في البيئات الداعمة التي تهتم بالتوحيد القياسي والتوافق عبر DE.

يحتوي Chromium بالفعل على رمز لرسم شريط العنوان باستخدام GTK:
https://chromium.googlesource.com/chromium/src/+/master/ui/gtk/native_theme_gtk.cc#695

في يوم السبت 14 نوفمبر 2020 ، الساعة 4:22 مساءً كتب Hugo Barrera [email protected] :

بصراحة ، أفضل ألا تكون زخرفة النافذة بأكملها
نفذت في الإلكترون. مطورو جنوم يتخذون موقفا قويا
"أي شيء لم يتم القيام به على طريقتهم غير مدعوم" ، لذا يتعين عليك التغلب على ذلك
في جميع تطبيقات العميل يضيف فقط التعقيد لجميع تطبيقات المصب.

إذا تم كسر الزخارف في جنوم لأن المطورين يصرون "هذا
بالطريقة التي يجب أن تكون "، فليكن. محاولة التغلب على أخطاء جنوم
يستمر في جلب المشكلات أو التناقضات إلى بيئات غير GNOME.

لقد كسرت تطبيقات كافية التفاصيل الدقيقة بالفعل باسم محاولة العمل
بشكل صحيح في جنوم. أفضل أن أبذل الجهد في البيئات الداعمة
التي تهتم بالتوحيد القياسي والتوافق عبر DE.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/electron/electron/issues/10915#issuecomment-727273382 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AAM4YSPJBCV2S5L5GULQVOTSP37J7ANCNFSM4EA2BOCA
.

هذا لأن Gnome قرر عدم دعم الزخارف من جانب الخادم مما يعني أن جميع التطبيقات يجب أن ترسم الزخارف الخاصة بها (https://gitlab.gnome.org/GNOME/mutter/-/issues/217).

هذا يعني أنه لكي تبدو نوافذ الإلكترون "عاقلًا" في جنوم ، يجب أن يحدث أحد هذين الإجراءين:

* 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

لكن في تقرير الخطأ المرتبط ، يشير أحدهم إلى:

هذا واضح جدًا ، تتطلب زخارف XDG نفسها دعمًا للديكور من العملاء. كما يسمح صراحة
المكوِّنين لتجاهل تفضيل العميل.
أي أن تنفيذ المركب الذي يستخدم دائمًا وضع client_side في أحداث التكوين سيكون محددًا تمامًا-
متوافق. أي عميل يدعي الدعم ، لكنه لا يدعم الزخارف من جانب العميل ليس كذلك.

لذلك ، حتى إذا اعتقد شخص ما أنه من الأفضل استخدام الزخارف من جانب الخادم ، فيبدو أنه لكي يكون العميل متوافقًا مع الطريق ، يجب أن يدعم CSD.

هذا واضح جدًا ، تتطلب زخارف XDG نفسها دعمًا للديكور من العملاء. كما يسمح صراحة
المكوِّنين لتجاهل تفضيل العميل.
أي أن تنفيذ المركب الذي يستخدم دائمًا وضع client_side في أحداث التكوين سيكون محددًا تمامًا-
متوافق. أي عميل يدعي الدعم ، لكنه لا يدعم الزخارف من جانب العميل ليس كذلك.

FWIW ، جنوم لا يتبع هذه القاعدة على الإطلاق. يعتبر زر التأكيد في أشياء مثل منتقي الملفات "زخرفة" ، لذا فإن إخفاء زخارف العميل يخفي زر الإجراء الرئيسي.

ومع ذلك ، إذا كانت المواصفات صريحة بهذا الشكل ، فأعتقد أنه من المنطقي أن يدعم الإلكترون ذلك.

قلقي الوحيد هو أن مطوري التطبيقات قد ينتهي بهم الأمر إلى نسيان التفكير في بديل أو آخر - هذه المرونة الكبيرة في العميل تبدو فقط كعامل لطيف يتغاضى عنه المطور.

هل يمكن أن يكون هناك تطبيق افتراضي للزخارف من جانب العميل يتم تمكينه تلقائيًا ، ثم إلغاء الاشتراك للمطورين الذين يرغبون في القيام بشيء أكثر تحديدًا للتطبيق؟ فقط حتى يحصل الأشخاص الذين ليس لديهم زخارف من جانب الخادم على بعض الأساسيات على الأقل؟

لا يحتوي بروتوكول wayland الأساسي على مفهوم الزخارف ، يجب على العملاء دائمًا رسم شريط العنوان الخاص بهم ما لم يتم إخبارهم صراحة بخلاف ذلك (على سبيل المثال عبر xdg_decoration إذا تم تنفيذه - وتذكر أن return CLIENT_SIDE البسيط سيكون تطبيقًا صحيحًا وإن كان واحد لا طائل منه)

أنا شخصيا سأصوت لإنشاء قضية منفصلة لمثل هذه المواضيع. كان السبب الأولي لهذه المشكلة هو توفير بناء الطريق الذي يتم الآن في القناة الليلية. سنواجه بالتأكيد المزيد من المشاكل مع wayland ومناقشة كل منها في هذا الموضوع سيؤدي إلى إنشاء الكثير من البريد العشوائي.

ومع ذلك ، فيما يتعلق بموضوع شريط العنوان ، سأذكر أيضًا أن المشكلة موجودة في الكروم أيضًا ومن المحتمل أن تحتاج إلى حلها هناك أيضًا. لإعادة إنتاج هذا الكروم المفتوح مع تعطيل wayland ، انقر بزر الماوس الأيمن على شريط العنوان للتأكد من تمكين "استخدام شريط عنوان النظام والحدود". بعد ذلك ، أعد تشغيل الكروم هذه المرة مع تمكين wayland وسترى أنه ليس لديك شريط عنوان. ربما يكون من الأفضل الانتظار حتى يتم إصلاح هذا في المنبع.

هناك حاجة إلى rtc_use_pipewire=true لأي إصدار من Wayland وأعتقد أنه يجب مناقشتها هنا. danshick الذي أراه كان يعمل على ذلك.

هناك حاجة إلى rtc_use_pipewire=true لأي إصدار من Wayland وأعتقد أنه يجب مناقشتها هنا. danshick الذي أراه كان يعمل على ذلك.

ليست هناك حاجة ، ولكنها مفيدة بالتأكيد إذا كان desktopCapturer سيعمل. أدى تمكين هذا العلم إلى حدوث العشرات من أخطاء البناء التي أتعامل معها.

أعلم أنه من الممكن البناء باستخدام هذا العلم كما هو الحال في حزمة الأوزون الإلكتروني AUR ، ولكن هذه الحزمة يمكن أن تعترضني في أي وقت أحاول فيه DesktopCapturer API ، ولم أنجح في تعديل PKGBUILD للاحتفاظ برموز تصحيح الأخطاء.

بالنظر إلى هذا التغيير يبدو أكثر تعقيدًا من مجرد إضافة العلم وإعادة البناء ، وحقيقة أنه مفيد حتى من XWayland ، أعتقد أنه قد يكون من الأفضل لمشكلة جديدة / العلاقات العامة.

أعلم أنه من الممكن البناء باستخدام هذا العلم كما هو الحال في حزمة الأوزون الإلكتروني AUR ، ولكن هذه الحزمة يمكن أن تعترضني في أي وقت أحاول فيه DesktopCapturer API ، ولم أنجح في تعديل PKGBUILD للاحتفاظ برموز تصحيح الأخطاء.

تعمل رموز التصحيح بالنسبة لي - هذه هي الأجزاء ذات الصلة على الأرجح من 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)

شكرًا hedgepigdaniel ، لقد جربت !strip و debug ، والتي بدت وكأنها محترمة في pkgbuild ، لكن بعض علامات المترجم الإضافية هذه تبدو مفيدة.

ما زلت أرغب في الحصول على هذا المبنى كما ينبغي مباشرة من git ، لكن على الأقل يمكنني تشخيص segfault على الفور.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

chonsser picture chonsser  ·  3تعليقات

jviotti picture jviotti  ·  3تعليقات

feross picture feross  ·  3تعليقات

christiangenco picture christiangenco  ·  3تعليقات

diracdeltas picture diracdeltas  ·  3تعليقات