This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch wl/browser-all
in repository enlightenment.
View the commit online.
commit 5017f85167618e2daf25ec694eff620aceccbc3b
Author: Cedric BAIL <[email protected]>
AuthorDate: Sun Aug 16 20:55:20 2026 -0600
tests - keep the system-service dialog out of run-nested.sh too
Every browser probe against a nested E showed a second, clipped copy of the
browser's window painted elsewhere on screen, stable and reproducible on both
Firefox 153 and Chromium 151 - which made it look like a compositing bug in the
path this branch has been rewriting.
It is not. It is E's own "Error in Enlightenment System Service" dialog:
ec=.. pid=0 name='Error in Enlightenment System Service' class='_error_dialog'
frame 395x139+480+384 buffer 0x0
vis=1 internal=1 argb=0
frameobj 0x0+480+384 vis=0
395x139 at +480+384, which is exactly where and how big the artefact measured
in both browsers. enlightenment_system cannot run in a build sandbox, so five
seconds in E asks to say so, and 7f0fffc91 gated that on E_TEST_NO_DIALOGS.
e_wlcs.c sets it. This script never did - the wlcs work added it to one harness
and missed the other - so every test here that outlives five seconds has had an
uninvited client in it.
What the dialog then does is a real bug, and not this one:
* Its canvas is never created. _ecore_evas_wl_common_new_internal() logs
"Failed to get Evas Engine Info for 'wayland_shm'" twice. The engine module
loads and the display connects - both have their own earlier error paths
and neither fires - so the failure is later, at evas_engine_info_get().
* E makes an E_Client for it anyway, marked visible and opaque, with no
buffer and a 0x0 invisible frame object. Compositor bookkeeping now has a
window that occupies a rectangle containing nothing.
* On the x11 backend it also escapes E entirely. xwininfo shows it on the
host X server as a *sibling* of E's own compositor window:
0x20007b "Error in Enlightenment System Service" 395x139+480+384
0x200002 "Enlightenment: WL-X11" 1280x1024+0+0
Nothing is on E's canvas at 480,384 - the canvas object list is the two
firefox surfaces and the background, nothing else - so E is not painting
the artefact. X is, from an uncomposited window showing stale screen
content.
The same engine failure and the same phantom E_Client happen on the buffer
backend, which is what the whole suite runs on; there is simply no X server for
the window to escape to, so it stays invisible instead of ghosting. An external
EFL client - elementary_test - connects to the same compositor, composites
correctly and logs nothing, so this is about windows created inside the
compositor's own process, not about the wayland_shm engine as such.
Measured, x11 backend, firefox, before and after this one line: two engine
errors, an _error_dialog X window and a phantom E_Client, versus none of the
three. Suite unchanged: wl-globals and all seven protocol tests pass, and
e_wlcs_driver passes.
Fixing the internal window is a separate piece of work and probably not in this
tree. This is the harness catching up with the other harness.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
src/tests/wayland/run-nested.sh | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/tests/wayland/run-nested.sh b/src/tests/wayland/run-nested.sh
index f379a97d4..a10518000 100755
--- a/src/tests/wayland/run-nested.sh
+++ b/src/tests/wayland/run-nested.sh
@@ -29,6 +29,17 @@
# * E_CONF_PROFILE + E_CONF_PROFILE_NOSAVE, so a test run cannot write to
# the developer's real E configuration.
#
+# E_TEST_NO_DIALOGS is the third thing, and it is about the compositor rather
+# than the machine. enlightenment_system cannot run in a build sandbox, so five
+# seconds in E asks to tell someone about it - and here nobody can read it. The
+# dialog is an internal window, and an internal window whose canvas cannot be
+# created leaves E believing a visible client occupies a rectangle that has
+# nothing in it. On the x11 backend it is worse: the window lands on the host X
+# server as a sibling of E's own, outside E's compositing, showing whatever was
+# in that part of the screen. That is a compositor bug in its own right, but a
+# test run has no reason to go anywhere near it. e_wlcs.c has set this since
+# 7f0fffc91; this script was simply missed.
+#
# The default backend is "buffer" (E_WL_FORCE=buffer, the wl_buffer module):
# an in-memory ecore_evas with no X server, no DRM, no GL and no login
# session. E's own --help text describes it as "Invisible memory buffer.
@@ -199,6 +210,7 @@ E_LOCALE_DIR="$E_PREFIX/share/locale" \
E_WL_FORCE="$BACKEND" \
E_CONF_PROFILE=wltest \
E_CONF_PROFILE_NOSAVE=1 \
+E_TEST_NO_DIALOGS=1 \
E_HOME="$E_HOME" \
HOME="$RUNDIR" \
"$E_BIN" >"$E_LOG" 2>&1 &
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.