diff --git a/src/browser_harness/admin.py b/src/browser_harness/admin.py index bdcf5d28..35668eea 100644 --- a/src/browser_harness/admin.py +++ b/src/browser_harness/admin.py @@ -631,16 +631,16 @@ def print_update_banner(out=None): def _chrome_running(): - """Cross-platform best-effort check for a running Chrome/Edge process.""" + """Cross-platform best-effort check for a running Chromium-based browser.""" import platform, subprocess system = platform.system() try: if system == "Windows": out = subprocess.check_output(["tasklist"], text=True, timeout=5) - names = ("chrome.exe", "msedge.exe") + names = ("chrome.exe", "msedge.exe", "helium.exe") else: out = subprocess.check_output(["ps", "-A", "-o", "comm="], text=True, timeout=5) - names = ("Google Chrome", "chrome", "chromium", "Microsoft Edge", "msedge") + names = ("Google Chrome", "chrome", "chromium", "Microsoft Edge", "msedge", "helium") return any(n.lower() in out.lower() for n in names) except Exception: return False diff --git a/tests/unit/test_admin.py b/tests/unit/test_admin.py index 06ec751c..e49c44d4 100644 --- a/tests/unit/test_admin.py +++ b/tests/unit/test_admin.py @@ -123,6 +123,16 @@ def test_browser_connections_returns_attached_page(monkeypatch): ] +def test_chrome_running_detects_helium_on_linux(monkeypatch): + monkeypatch.setattr("platform.system", lambda: "Linux") + monkeypatch.setattr( + "subprocess.check_output", + lambda *args, **kwargs: "systemd\nhelium\nxdg-desktop-portal\n", + ) + + assert admin._chrome_running() + + def test_run_doctor_prints_active_browser_connections_and_active_pages(monkeypatch, capsys): monkeypatch.setattr(admin, "_version", lambda: "0.1.0") monkeypatch.setattr(admin, "_install_mode", lambda: "git")