Public bug reported:

[Impact]
Ubuntu AppIndicators can show two tray icons for one StatusNotifierItem object. 
Automatic discovery and explicit registration can use different identifiers (a 
well-known service name versus the unique D-Bus connection and object path), so 
the registry does not recognize the duplicate.

Observed on Ubuntu 24.04 with gnome-shell-extension-appindicator
58-1ubuntu24.04.1 and GNOME Shell 46. One application had two registered
tray entries pointing to the same D-Bus owner and object path. Both
entries exposed the same menu and state. No application configuration is
required to diagnose this.

[Upstream]
Related report: 
https://github.com/ubuntu/gnome-shell-extension-appindicator/issues/665
Proposed fix: 
https://github.com/ubuntu/gnome-shell-extension-appindicator/pull/679

The proposed change keys the internal registry by resolved unique owner
plus object path, while retaining the original proxy destination and
advertised service. This is a request to consider an SRU for Noble after
upstream review and package validation; it is not a claim that the patch
is already accepted or SRU-verified.

[Test Plan]
1. Use a test StatusNotifierItem with a well-known bus name and an exported 
object. All identifiers below are synthetic.
2. Let discovery register that object through an alternate service name, then 
explicitly register it through its normal service name or object path. Reverse 
the order and also exercise overlapping registration.
3. Verify that RegisteredStatusNotifierItems represents the object once and 
that the panel displays one working icon.
4. Verify separate objects on the same connection and objects on separate 
connections remain separate.
5. Verify explicit re-registration refreshes the existing icon; exit and 
restart the test application, including rapid reuse of its well-known name.
6. Disable and re-enable the extension while the test application remains 
running. Verify discovery restores one icon and its menu/status remain usable.
7. Verify delayed destruction and startup completion cannot remove or publish 
retired entries, and failed registration can be retried.

[Where problems could occur]
All StatusNotifierItem registration paths share this registry. A regression 
could hide legitimate tray items, leave stale entries after an application 
restart, or affect menus if proxy routing is inadvertently changed. Testing 
must cover path-based, service-name, service/path, and standard SNI-name 
clients, along with multiple objects and owner changes.

[Validation so far]
The upstream patch passes 15 regression tests exercising the actual watcher and 
helper modules with desktop/D-Bus test doubles. The initial regression suite 
demonstrated failures on the unpatched source. Three existing GJS menu tests 
and ESLint checks pass. A local Noble backport passes syntax/lint checks and is 
active without extension errors. Re-registering the same live object 
alternately through its unique owner and well-known service name preserved 
exactly one registered item, with the application process unchanged during 
verification. No Ubuntu archive test package has been verified.

Activation caveat: the application aborted in its Avalonia/Tmds tray
code on an unhandled D-Bus UnknownMethod reply while the watcher
interface was temporarily unavailable during extension handover. The
application was restored successfully before the registration checks.
Seamless hot switching is not verified.

No credentials, IP addresses, application configuration,
subscription/proxy details, or raw machine logs are attached.

** Affects: gnome-shell-extension-appindicator (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gnome-shell-extension-appindicator
in Ubuntu.
https://bugs.launchpad.net/bugs/2170414

Title:
  Duplicate tray icons when discovery and registration use different
  names for one StatusNotifierItem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell-extension-appindicator/+bug/2170414/+subscriptions


-- 
desktop-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to