Onboard does not proffer suggestions for XUL based software (e.g. Firefox)

Bug #1278942 reported by Lee Hyde
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Onboard
Incomplete
Undecided
Unassigned

Bug Description

Onboard does not proffer any suggestions or (one assumes) learning from input for XUL based software (e.g. Firefox and Thunderbird). At this point whether similar bugs are experienced of software based on toolkits other than gtk2/3, or whether this is expected or accepted behaviour.

P.S. I'm almost certain than when I first started using Onboard (from trunk) it *did* interact perfectly with Firefox, proffering suggestions and (seemingly) learning from text input into Firefox. I /could/ be incorrect though; my memory of such minutia is hardly infallible.

Revision history for this message
marmuta (marmuta) wrote :

Auto-show and word suggestions should both work pretty well in Firefox and Thunderbird, it never stopped here at least. There's even special handling of the URL bar only for Firefox. What distribution is this again?
$ cat /etc/issue

See if you have libatk-adaptor, the Mozilla apps need that one. Ubuntu should have it installed by default, though.
$ sudo apt-get install libatk-adaptor

This is the full set of AT-SPI bridges and adaptors I'm aware of, for Qt apps, LibreOffice and Java apps:
$ sudo apt-get install libatk-adaptor qt-at-spi libreoffice-gtk
$ sudo apt-get install libatk-wrapper-java # only if you have the space and need Java

Revision history for this message
Lee Hyde (anubeon) wrote :

> What distribution is this again?

Ubuntu 13.10 \n \l

> See if you have libatk-adaptor, the Mozilla apps need that one. Ubuntu should have it installed by default, though.

Yep, it's installed and up to date.

Looks likes this is destined to be /another/ quirk that affects my system and only my system. I'm really not sure what I could have done to down Onboard's compatibility with Firefox. It might be worth noting that I've got the current stable release of Firefox as well as the current nightly installed. I use both regularly, both are affected, and Firefox and Thunderbird were both affected before I installed Firefox nightly.

Revision history for this message
marmuta (marmuta) wrote :

Sorry for the delay, there was a mad rush to get the 1.0.0 release ready.

Try this first, to be sure:
sudo apt-get install --reinstall libatk-adaptor

One more, this really shouldn't be necessary anymore, but I heard it helped occasionally:
add
GTK_MODULES=gail:atk-bridge
to
/etc/environment

So, do you have any firefox from the regular repository installed or are both, the stable too, from PPA's? Which PPA's? What about Thunderbird? Maybe they aren't built with ATK. I'd like to try them here.

Revision history for this message
Lee Hyde (anubeon) wrote :

Sorry for the late response.

> Try this first, to be sure:
> sudo apt-get install --reinstall libatk-adaptor

I'm afraid that hasn't done the trick. :-(

> One more, this really shouldn't be necessary anymore, but I heard it helped occasionally:
add
> GTK_MODULES=gail:atk-bridge
> to
> /etc/environment

Doesn't /appear/ to have had any affect, but I haven't rebooted the system yet. I'll get back to you once I get around to rebooting, should the situation change (otherwise, assume it hasn't worked).

> So, do you have any firefox from the regular repository installed or are both, the stable too, from PPA's? Which PPA's? What about Thunderbird? Maybe they aren't built with ATK. I'd like to try them here.

I'm using Firefox *27.0.1+build1-0ubuntu0.13.10.1 (saucy-updates)* from the Ubuntu repositories (universe? partners? I'm not certain which), Thubderbird *1:27.0~b1+build1-0ubuntu0.13.10.1 (saucy)* from the official Thunderbird Beta PPA (ppa:mozillateam/thunderbird-next) and Firefox-Trunk *30.0~a1~hg20140225r170482-0ubuntu1~umd1~saucy* from the official Mozilla Daily PPA (ppa:ubuntu-mozilla-daily/ppa). I also have Thunderbird Daily installed from the latter PPA, but I don't really use it at all.

** Obviously, ignore the asterisks parenthesizing the version information above, they're there to provide emphasis only (hopefully you're e-mail client renders them as bold).

Revision history for this message
marmuta (marmuta) wrote :

It finally happened here too, on my updated Trusty Tahr. Firefox became invisible to Onboard some days ago. Francesco told me the same happened on his machine. Orca the screen-reader stopped seeing firefox as well, so I don't believe the cause is with Onboard.
What we all have in common is new versions of firefox. I'll try to start there and see if I can find out where in the chain the accessibility events get lost.

> (hopefully you're e-mail client renders them as bold).
Nope sorry, no bold. Claws mail in plain text here.

Changed in onboard:
status: New → Confirmed
Revision history for this message
marmuta (marmuta) wrote :

This was fixed in Trusty apparently, accessibility for Firefox and VirtualBox is back for me. Apparently Ubuntu replaced gnome-settings-daemon with its own unity-settings-daemon, and the new one initially failed to locate the GTK modules for the various at-spi bridges, i.e. for Mozilla apps, Qt, and probably Java as well.

This won't have any direct effect on Ubuntu 13.10, but perhaps something similar is going on. Lee, when you find the time run this please (while Firefox is running):

$ grep -i atk-bridge /proc/$(pidof firefox)/maps

It should print lines like
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

and

$ env | grep GTK_MODULES

which here is
GTK_MODULES=gail:atk-bridge:overlay-scrollbar:unity-gtk-module

Changed in onboard:
status: Confirmed → New
status: New → Incomplete
Revision history for this message
Lee Hyde (anubeon) wrote :

Thanks for getting back to me.

As requested:

> $ grep -i atk-bridge /proc/$(pidof firefox)/maps

Doesn't print anything at all, it just returns me to the prompt. (note: thus is running the above command on firefox-trunk's PID rather than firefox's per se)

> $ env | grep GTK_MODULES

prints only GTK_MODULES=overlay-scrollbar. Which is odd, as I had previously followed your instructions to edit /etc/environment to include GTK_MODULES="gail:atk-bridge". In fact /etc/environment presently reads as follows:

   PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
   GTK_MODULES="gail:atk-bridge"

I added the double quotes to bring the GTK_MODULE= line in-line with the existing PATH= line. I figured it wouldn't make much difference, but perhaps it does? For the time being, I'll replace GTK_MODULES="gail:atk-bridge" with GTK_MODULES=gail:atk-bridge:overlay-scrollbar:unity-gtk-module (sans any double quotes) and see if that helps.

Revision history for this message
Lee Hyde (anubeon) wrote :

I've also executed

$ GTK_MODULES=gail:atk-bridge:overlay-scrollbar:unity-gtk-module

and restarted both Onboard and Firefox, both to no avail. The above modules are of course now loaded (the output of env | grep GTK_MODULES confirms this), but Onboard still doesn't 'see' Firefox (trunk or stable).

Revision history for this message
Francesco Fumanti (frafu) wrote :

@marmuta

After the updates from the Ubuntu trusty repositories of today, prediction is working again for thunderbird, firefox and libreoffice writer.

$ grep -i atk-bridge /proc/$(pidof firefox)/maps
7f0e62c76000-7f0e62c9e000 r-xp 00000000 08:05 134285 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f0e62c9e000-7f0e62e9e000 ---p 00028000 08:05 134285 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f0e62e9e000-7f0e62e9f000 r--p 00028000 08:05 134285 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f0e62e9f000-7f0e62ea0000 rw-p 00029000 08:05 134285 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f0e62ea1000-7f0e62ea2000 r-xp 00000000 08:05 393719 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f0e62ea2000-7f0e630a1000 ---p 00001000 08:05 393719 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f0e630a1000-7f0e630a2000 r--p 00000000 08:05 393719 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f0e630a2000-7f0e630a3000 rw-p 00001000 08:05 393719 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

$ env | grep GTK_MODULES
GTK_MODULES=canberra-gtk-module:canberra-gtk-module:overlay-scrollbar:unity-gtk-module

Revision history for this message
marmuta (marmuta) wrote :

Francesco, thanks for the update. I have the same output here.

Lee, I don't think quotes in /etc/environment make a difference either, but better use 'export' in the terminal, else the variable won't reach child processes:

$ export GTK_MODULES=gail:atk-bridge
$ firefox

This isn't necessary when you do it in one line, I think:
$ GTK_MODULES=gail:atk-bridge firefox

Then run this again to check if the module is loaded, good output would be like Francesco's above:
$ grep -i atk-bridge /proc/$(pidof firefox)/maps

If there is nothing, check if this file exists:
$ stat /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

and try this
$ firefox --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

If that fails there should be message like
Gtk-Message: Failed to load module "/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so"

Check again if the module is loaded:
$ grep -i atk-bridge /proc/$(pidof firefox)/maps

Revision history for this message
Lee Hyde (anubeon) wrote :

> but better use 'export' in the terminal, else the variable won't reach child processes:

> $ export GTK_MODULES=gail:atk-bridge

Of course, doh! Presumably I don't need to include 'export' in /etc/environment.

> Then run this again to check if the module is loaded, good output would be like Francesco's above:
> $ grep -i atk-bridge /proc/$(pidof firefox)/maps

Still no joy I'm afraid.

> If there is nothing, check if this file exists:
> $ stat /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

The file exists.

> and try this
> $ firefox --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

Done, and no sign of a failure to load the atk-bridge (or any other) module.

> Check again if the module is loaded:
> $ grep -i atk-bridge /proc/$(pidof firefox)/maps

Done, and I'm finally getting output (as follows), alas there doesn't appear to be any joy on the word suggestions front. Onboard still appears to not 'see' Firefox (maybe a reboot will help things along; reboots always help things along ;-))

7fa089a1a000-7fa089a42000 r-xp 00000000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7fa089a42000-7fa089c42000 ---p 00028000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7fa089c42000-7fa089c43000 r--p 00028000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7fa089c43000-7fa089c44000 rw-p 00029000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7fa089c45000-7fa089c46000 r-xp 00000000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7fa089c46000-7fa089e45000 ---p 00001000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7fa089e45000-7fa089e46000 r--p 00000000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7fa089e46000-7fa089e47000 rw-p 00001000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

Revision history for this message
marmuta (marmuta) wrote :

> Presumably I don't need to include 'export' in /etc/environment.
I do have it there, pasted from somewhere else, but I don't believe you need it. Doing this manually isn't supposed to be necessary anyway.

> Onboard still appears to not 'see' Firefox
I think libgail is still missing, try this
$ firefox --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so

and check if both modules are loaded with
$ grep -i "atk-bridge\|gail" /proc/$(pidof firefox)/maps

If we're lucky that does it, but we don't know why the modules aren't loaded automatically. Some random things I came across that may help finding out:

$ gsettings list-recursively org.gnome.settings-daemon.plugins.xsettings
org.gnome.settings-daemon.plugins.xsettings disabled-gtk-modules @as []
org.gnome.settings-daemon.plugins.xsettings priority 0
org.gnome.settings-daemon.plugins.xsettings hinting 'slight'
org.gnome.settings-daemon.plugins.xsettings overrides @a{sv} {}
org.gnome.settings-daemon.plugins.xsettings rgba-order 'rgb'
org.gnome.settings-daemon.plugins.xsettings antialiasing 'grayscale'
org.gnome.settings-daemon.plugins.xsettings active true
org.gnome.settings-daemon.plugins.xsettings enabled-gtk-modules @as []

$ env | grep GNOME_ACCESSIBILITY
no output here

$ env | grep NO_AT_BRIDGE
no output again

$ ps x | grep [s]ettings-daemon
 2716 ? Ssl 0:01 /usr/lib/unity-settings-daemon/unity-settings-daemon
 3013 ? Sl 0:00 /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
(You'll probably get gnome-settings-daemon here)

$ apt-cache policy gnome-settings-daemon
  Installed: 3.8.6.1-0ubuntu9

Revision history for this message
Lee Hyde (anubeon) wrote :
Download full text (4.2 KiB)

> I think libgail is still missing, try this
> $ firefox --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so --gtk-module=/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
>
> and check if both modules are loaded with

Output (as follows) suggests that both modules are loaded, but Onboard still doesn't seem to 'see' Firefox (i.e. no word suggestions).

7f797ca30000-7f797ca58000 r-xp 00000000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f797ca58000-7f797cc58000 ---p 00028000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f797cc58000-7f797cc59000 r--p 00028000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f797cc59000-7f797cc5a000 rw-p 00029000 08:05 1061919 /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0.0.0
7f797cc5b000-7f797cc5c000 r-xp 00000000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f797cc5c000-7f797ce5b000 ---p 00001000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f797ce5b000-7f797ce5c000 r--p 00000000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f797ce5c000-7f797ce5d000 rw-p 00001000 08:05 1322333 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so
7f797ce5d000-7f797ce64000 r-xp 00000000 08:05 1056374 /usr/lib/x86_64-linux-gnu/libgailutil.so.18.0.1
7f797ce64000-7f797d063000 ---p 00007000 08:05 1056374 /usr/lib/x86_64-linux-gnu/libgailutil.so.18.0.1
7f797d063000-7f797d064000 r--p 00006000 08:05 1056374 /usr/lib/x86_64-linux-gnu/libgailutil.so.18.0.1
7f797d064000-7f797d065000 rw-p 00007000 08:05 1056374 /usr/lib/x86_64-linux-gnu/libgailutil.so.18.0.1
7f797d065000-7f797d0b2000 r-xp 00000000 08:05 1311751 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
7f797d0b2000-7f797d2b2000 ---p 0004d000 08:05 1311751 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
7f797d2b2000-7f797d2b3000 r--p 0004d000 08:05 1311751 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
7f797d2b3000-7f797d2b5000 rw-p 0004e000 08:05 1311751 /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so

I did notice that when I abruptly kill Onboard (via Ctrl+C in terminal), I get the following output, could it be related/illuminating?

** (onboard:15420): WARNING **: AT-SPI: Error in GetItems, sender=org.freedesktop.DBus, error=Message did not receive a reply (timeout by message bus)

> $ gsettings list-recursively org.gnome.settings-daemon.plugins.xsettings

Seems identical at this end, except antialiading (set to rgba rather than greyscaling):

org.gnome.settings-daemon.plugins.xsettings active true
org.gnome.settings-daemon.plugins.xsettings antialiasing 'rgba'
org.gnome.settings-daemon.plugins.xsettings disabled-gtk-modules @as []
org.gnome.settings-daemon.plugins.xsettings enabled-gtk-modules @as []
org.gnome.settings-daemon.plugins.xsettings hinting 'slight'
org.gnome.settings-daem...

Read more...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.