You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When Chrome is launched from a graphical launcher on GNOME/Wayland, the "busy"
(spinner) cursor keeps running for about 30 seconds. Chrome itself is up and fully
usable within a second — the window is mapped, responsive and correctly matched to
its app icon. Only the launch feedback is stuck, until it eventually times out.
Launching with flatpak run com.google.Chrome from a terminal never shows the
problem, because that path never opens a startup sequence in the first place.
This looks like the same symptom as #308 (closed, June 2024), which is still
reproducible almost two years later on a current GNOME.
Launch it from the GNOME Activities overview or from a dock.
The window appears almost immediately and is usable.
The busy cursor keeps spinning for ~30 seconds regardless.
Expected vs actual
Expected: launch feedback stops as soon as the window is up. Actual: it stops only when the startup sequence times out. The duration is
always the same, independent of machine load or of how long Chrome actually takes —
which is what identifies it as a timeout rather than real work.
What I verified
I traced the activation token through every hop:
GNOME issues a token. The problem only occurs on launch paths that create a
startup sequence. Launching from a terminal, which does not, never reproduces it.
Flatpak forwards it into the sandbox. XDG_ACTIVATION_TOKEN=test flatpak run --command=sh com.google.Chrome -c 'echo $XDG_ACTIVATION_TOKEN'
prints the token. DESKTOP_STARTUP_ID is forwarded too.
The token reaches the real Chrome process. Launching with XDG_ACTIVATION_TOKEN=TEST-98765 flatpak run com.google.Chrome and then reading /proc/<chrome-pid>/environ shows XDG_ACTIVATION_TOKEN=TEST-98765 in the
environment of the browser process itself, not just of the sandbox shell.
So the token is delivered end to end, and is simply never used to complete the
startup sequence.
The cost is losing launch feedback for Chrome — acceptable here only because that
feedback was already meaningless, staying on for half a minute after the app was
ready.
Note on where this belongs
Since the token is delivered correctly all the way to the browser process, this may
well be an upstream Chromium issue in the ozone/Wayland startup-notification
handling rather than a packaging one, and I understand if it needs to be redirected
there. I am reporting it here because this is where users of the Flatpak will look,
because #308 was closed without a recorded cause, and because shipping StartupNotify=false in the manifest is a mitigation available at packaging level
while upstream is sorted out.
I am happy to run further tests on this machine if that helps.
Summary
When Chrome is launched from a graphical launcher on GNOME/Wayland, the "busy"
(spinner) cursor keeps running for about 30 seconds. Chrome itself is up and fully
usable within a second — the window is mapped, responsive and correctly matched to
its app icon. Only the launch feedback is stuck, until it eventually times out.
Launching with
flatpak run com.google.Chromefrom a terminal never shows theproblem, because that path never opens a startup sequence in the first place.
This looks like the same symptom as #308 (closed, June 2024), which is still
reproducible almost two years later on a current GNOME.
Environment
Steps to reproduce
Expected vs actual
Expected: launch feedback stops as soon as the window is up.
Actual: it stops only when the startup sequence times out. The duration is
always the same, independent of machine load or of how long Chrome actually takes —
which is what identifies it as a timeout rather than real work.
What I verified
I traced the activation token through every hop:
startup sequence. Launching from a terminal, which does not, never reproduces it.
XDG_ACTIVATION_TOKEN=test flatpak run --command=sh com.google.Chrome -c 'echo $XDG_ACTIVATION_TOKEN'prints the token.
DESKTOP_STARTUP_IDis forwarded too.XDG_ACTIVATION_TOKEN=TEST-98765 flatpak run com.google.Chromeand then reading/proc/<chrome-pid>/environshowsXDG_ACTIVATION_TOKEN=TEST-98765in theenvironment of the browser process itself, not just of the sandbox shell.
So the token is delivered end to end, and is simply never used to complete the
startup sequence.
Ruled out
StartupWMClass). In the currently shipped.desktopfile,StartupWMClass=google-chromeis correctly inside[Desktop Entry](line 106, before the[Desktop Action]groups). The window ismatched to the app: a single dock icon, no ghost entry.
launched from the terminal or through its
.desktopfile withgio launch.--user-data-dir.and nothing is logged by gnome-shell during the stuck period.
Workaround
Overriding the desktop entry with
StartupNotify=falseremoves the stuck cursorcompletely:
The cost is losing launch feedback for Chrome — acceptable here only because that
feedback was already meaningless, staying on for half a minute after the app was
ready.
Note on where this belongs
Since the token is delivered correctly all the way to the browser process, this may
well be an upstream Chromium issue in the ozone/Wayland startup-notification
handling rather than a packaging one, and I understand if it needs to be redirected
there. I am reporting it here because this is where users of the Flatpak will look,
because #308 was closed without a recorded cause, and because shipping
StartupNotify=falsein the manifest is a mitigation available at packaging levelwhile upstream is sorted out.
I am happy to run further tests on this machine if that helps.