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 7f0fffc912de6183f88a9c0afcb81b0a3c0f3937
Author: Cedric BAIL <[email protected]>
AuthorDate: Wed Aug 12 00:37:55 2026 -0600

    e_module, e_system - do not open dialogs at a compositor with no user
    
    Every wlcs run has three of E's own windows appear in the middle of it: two
    "Unstable module tainting" dialogs on a 1.5s timer and one "Error in
    Enlightenment System Service" on a 5s one. They are ordinary clients and they
    take the focus, so the test's own window is left unfocused partway through -
    a probe trace shows focus walking from the window under test to one dialog
    and on to the next. Most tests run about two seconds, so the pair of taint
    dialogs land inside nearly all of them.
    
    The tainted module is wl_test, which we force-load ourselves from the wlcs
    shim. It is an in-tree module like every other name in the whitelist in
    _e_module_whitelist_check and simply was never added to it, so add it.
    
    enlightenment_system genuinely cannot run in a build sandbox, and complaining
    about that is the right answer on a real desktop - it is only the wrong one
    where nobody can read it. Gate that dialog on the harness saying so, under
    E_TESTS, rather than on anything to do with why the spawn failed.
    
    wlcs: 716 passed, 24 failed, before and after - this fixes nothing and breaks
    nothing. It was found while chasing an activated=false that turned out to have
    another cause entirely, and the two tests that looked like they needed it pass
    without it once that cause is fixed. Kept because the focus theft is real and
    self-inflicted, and because a failing test's trace is unreadable with three
    uninvited windows in it. Not required by anything currently on the branch.
    
    Co-Authored-By: Claude Opus 5 <[email protected]>
    Claude-Session: https://claude.ai/code/session_01FtoiXoSKUmZb6Aix6U3GZS
---
 src/bin/e_module.c      | 1 +
 src/bin/e_system.c      | 5 +++++
 src/tests/wlcs/e_wlcs.c | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/bin/e_module.c b/src/bin/e_module.c
index e832a2366..6f37be452 100644
--- a/src/bin/e_module.c
+++ b/src/bin/e_module.c
@@ -778,6 +778,7 @@ _e_module_whitelist_check(void)
          "wl_wl",
          "wl_drm",
          "wl_shell",
+         "wl_test",
          "wl_desktop_shell",
          "xkbswitch",
          "music-control",
diff --git a/src/bin/e_system.c b/src/bin/e_system.c
index bfd43e7e2..e48da038f 100644
--- a/src/bin/e_system.c
+++ b/src/bin/e_system.c
@@ -118,6 +118,11 @@ _cb_dialog_timer(void *data)
 static void
 _system_spawn_error(int exit_code)
 {
+#ifdef E_TESTS
+   /* a test compositor has nobody to read a dialog, and a window appearing
+    * unbidden takes the focus off whatever the test is driving */
+   if (getenv("E_TEST_NO_DIALOGS")) return;
+#endif
    if (_error_dialog_timer) ecore_timer_del(_error_dialog_timer);
    _error_dialog_timer = ecore_timer_add(5.0, _cb_dialog_timer,
                                          (void *)(long)exit_code);
diff --git a/src/tests/wlcs/e_wlcs.c b/src/tests/wlcs/e_wlcs.c
index 2be87ee4d..20a83da68 100644
--- a/src/tests/wlcs/e_wlcs.c
+++ b/src/tests/wlcs/e_wlcs.c
@@ -251,6 +251,7 @@ _server_start(WlcsDisplayServer *server)
         setenv("E_CONF_PROFILE", "wltest", 1);
         setenv("E_CONF_PROFILE_NOSAVE", "1", 1);
         setenv("E_MODULE_FORCE_LOAD", "wl_test", 1);
+        setenv("E_TEST_NO_DIALOGS", "1", 1);
 
         /* wlcs builds every surface without the initial empty commit that
          * xdg-shell requires, so a spec-correct compositor kills the client

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to