Comment 12 for bug 155927

Revision history for this message
Ian Lawrence (ianlawrence) wrote :

The above statement is a slight misnomer as rather than "register itself properly" it should read "nothing to register itself too".

To explain this :

# ps aux | grep moblin-media
root 464 0.0 0.0 1732 488 ? S 11:25 0:00 /bin/sh /usr/bin/moblin-media

it seems that although moblin-media has a process ID it is not registered:

# export GTK_MODULES=gail:hail:atk-bridge
# python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:40:04)
[GCC 4.2.1 (Ubuntu 4.2.1-5ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyatspi
>>> reg = pyatspi.Registry
>>> print reg.getDesktopCount()
1
>>> desktop = reg.getDesktop(0)
>>> print len(desktop)
0

(so we have a running desktop with apparently no apps running in it)

this is confirmed by:

>>> from rocknrole import *
Creating logfile at /tmp/dogtail/logs/log_20071218-133920_debug ...
Detecting distribution: Ubuntu (or derived distribution)
Creating logfile at /tmp/dogtail/logs/log_20071218-133920_results ...
>>> isRunning('moblin-media')
False

So the ume session manager needs somehow to start the accessibility registry (at-spi-registryd).

In GNOME it has been implemented using code in gnome-session (if a11y was on, start the registry and set the GTK_MODULES variables) which is run at login. I tried a work around this by putting
/usr/lib/at-spi/at-spi-registryd into the ume-xephyr-start script and got this result (this time with the midbrowser started not moblin-media)

>>> import pyatspi
>>> reg = pyatspi.Registry
>>> desktop = reg.getDesktop(0)
>>> print len(desktop)
2
>>> for app in desktop: print app
...
[application | gnome-terminal]
[application | .]
>>> for i in range(desktop.childCount): print desktop[i]
...
[application | gnome-terminal]
[application | .]
>>> isRunning('.')
True
>>> h=appR('.')
>>> h.helper()

#################################################################################################
{"." application}
#################################################################################################

>>>

It works (well it doesn't error at least) but returns none of the co-ordinates for the midbrowser GUI components.

The next stage is obviously to see why i am getting a '. 'and not 'midbrowser' returned as the application name