This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch wl/real-browser
in repository enlightenment.

View the commit online.

commit 7aada31bf1c933360761f7650bdb4891f94432ab
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.

Reply via email to