GNOME Bugzilla – Bug 412286
Orca stops speaking after starting/stopping Firefox 3.
Last modified: 2007-03-05 06:38:43 UTC
This is a bug to try to capture the problems recently reported on the Orca mailing list with Orca not doing the right thing "with rev 882 of at-spi, but working well with rev 881 of at-spi". This is with Ubuntu Feisty (with all the latest updates) and the latest Orca from SVN trunk/HEAD. Steps to reproduce: 1/ I downloaded and unpacked the latest Firefox 3 tarball for Linux from: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ 2/ I started Orca. 3/ I pressed Alt-F1 to get focus to the Applications menu in the top gnome-panel. I walked down that menu for a couple items, then pressed Escape. 4/ From the directory where I'd unpacked the new Firefox 3, I typed "./firefox". This started up nicely. 5/ I used the mouse to click on the File menu (as pressing F10 didn't bring it up), and selected "Quit" from the menu. Firefox terminated successfully. 6/ I then hit Alt-F1 to get focus back to the Applications menu in the gnome-panel and walked down that menu. I noticed that Orca was no longer speaking those menu items. 7/ I pressed Insert-q, to bring up the Orca Exit dialog and exitted Orca. (At that point I got a crash dialog to say that at-spi-registryd had crashed. I filed a separate Ubuntu crash report on that. See: https://launchpad.net/ubuntu/+source/at-spi/+bug/88051). I'll attach a full Orca debug log to this bug report in a few moments. I also noticed that there is a new at-spi tarball released today. I'll try repeating these steps with that first. If that still fails, I'll checkout and install a "rev 881" version of at-spi and see if the problem goes away. If it does, then we need to determine the "fix" that went in between rev 881 and the latest at-spi that's caused this problem.
Created attachment 83390 [details] Orca debug transcript generating whilst following the steps to reproduce this bug.
Created attachment 83397 [details] Orca transcript when testing with at-spi v1.17.1 -- still broken. The latest at-spi still has the same problems. Now to test it with rev 881.
Created attachment 83398 [details] Orca debug.out when run against at-spi rev 881 - working version. I'll now reconfirm that it's broken again at-spi rev 882, then look at the differences between those two revs to see if I can see what's causing this.
Two others things I should note "for the record". 1/ When testing against at-spi rev 881, at-spi-registryd didn't crash. 2/ The following messages have been output in the xterm where I started Orca, for all three runs so far: $ orca GTK Accessibility Module initialized ** (orca:4902): WARNING **: Invalid object type load-complete ** (orca:4902): WARNING **: Invalid object type load-stopped ** (orca:4902): WARNING **: Invalid object type reload ** (orca:4902): WARNING **: Invalid object type load-complete ** (orca:4902): WARNING **: Invalid object type load-stopped ** (orca:4902): WARNING **: Invalid object type reload I've no idea of the significance of this -- I just thought that I should mention it.
Created attachment 83400 [details] Set of diffs to at-spi between rev 881 and rev 882. Yup, it fails with rev 882. Here's the set of diffs to at-spi between these two revisions. Now to try to work out the bogus change.
And the "winner" is: *** at-spi-881/libspi/util.c 2007-02-26 09:12:52.000000000 -0800 --- at-spi-882/libspi/util.c 2007-02-26 09:13:06.000000000 -0800 *************** *** 66,72 **** next = element->next; first_item = (element->prev == NULL); ! g_list_remove_link (NULL, element); for (l = working_list; l; l = l->next) { --- 66,72 ---- next = element->next; first_item = (element->prev == NULL); ! element = g_list_remove_link (NULL, element); for (l = working_list; l; l = l->next) { If I apply just this change to at-spi rev 881, rebuild and reinstall and then rerun the steps above (after a complete reboot "just to make sure"), I get the same failure we are seeing in rev 882 (and later). Also, if I take at-spi v1.17.1 and just apply the single reverse patch: i.e. replace: element = g_list_remove_link (NULL, element); with g_list_remove_link (NULL, element); then rebuild, reinstall and then rerun the steps above (after another complete reboot "just to make sure"), Orca now nicely speaks the Application menu entries after I've terminated Firefox. Time to recategorize the bug under at-spi so that they can fix it.