Implementations that previously offered a similar service via the Xembed-based system tray specification should give consideration to support for older clients, maintaining support for the older interface for a transitional period.
Implementations of StatusNotifierHost should offer support for the older interface indefinitely, for the benefit of applications that may be unable to use the new interface fully, such as those mediate foreign application environments (Hypervisors, emulators, remote graphics applications).
The Xembed based system tray specification should be used instead of the Status notifier protocol in one of the following scenarios:
The service org.freedesktop.StatusNotifierWatcher is not registered on the session bus
The service org.freedesktop.StatusNotifierWatcher is registered on the session bus, but the method org.freedesktop.StatusNotifierWatcher.IsStatusNotifierHostRegistered returns FALSE.
As soon as org.freedesktop.StatusNotifierWatcher appears on the session bus and org.freedesktop.StatusNotifierWatcher.IsStatusNotifierHostRegistered returns true the Freedesktop Systemtray item should be deleted and the StatusNotifierItem should be registered instead.
In the same way a StatusNotifierItem should be registered when arrives the signal org.freedesktop.StatusNotifierWatcher.StatusNotifierHostRegistered and no StatusNotifierHost were registered before.