GNOME Bugzilla – Bug 326725
embedded bonobo component hierarchy non-symmetric?
Last modified: 2006-07-19 20:38:47 UTC
Please describe the problem: This is from Sun bugster bug 6365385. I think it caused by fix for #321814. Dowgrade libgail-gnome to 1.1.1 will fix this bug. Steps to reproduce: 1. enable accessibility 2. start Evolution-2.4 3. start at-poke 4. try to look up tree table 'Mail Folder Tree' and 'Message List' Actual results: There are not tree table in at-poke. All bonobo components are show as a panel. Expected results: Does this happen every time? yes. Other information:
*** Bug 328493 has been marked as a duplicate of this bug. ***
Created attachment 58121 [details] Python script to help replicate the problem.
Created attachment 58122 [details] Transcript showing output for three problematic Evolution components
I've attached two files that'll hopefully help track down this problem. Note that I've been testing against Evolution from CVS HEAD, with GNOME 2.12 on Solaris x86. Will Walker sees a similar problem with Evolution 2.4.X The Python script is based on code in the Orca screen reader. See the comments at the beginning of the script for details of the steps needed to reproduce the problem. The transcript files shows the child ancestry and the application component hierarchy for three problematic Evolution components: - Mail Folder Tree - Mail Message list - Mail Compose Window - Message area In particular, notice the "WARNING CHILD IS NONE!!!" messages. As this is more then a problem with at-poke, perhaps the bug summary should be adjusted to something that better describes the problem. Thanks.
*** Bug 328407 has been marked as a duplicate of this bug. ***
Created attachment 58222 [details] [review] patch to reinstate embedded component hierarchy, for testing Please note that for this patch to work, your embedded BonoboControl components must implement the (*get_accessible) method from the BonoboControl epv, as defined in Bonobo_Control.idl. (libbonoboui). If a component was working previous to the libgail-gnome revisions last November, it should work again with this patch.
Created attachment 58223 [details] New transcript of results from Evolution test after applying patch. The new transcript shows the child ancestry and the application component hierarchy for three problematic Evolution components: - Mail Folder Tree - Mail Message list - Mail Compose Window - Message area Notice that the "WARNING CHILD IS NONE!!!" messages are now gone, but that there are several "WARNING CHILD.PARENT != PARENT!!!" messages. I don't know though whether this is a problem in Evolution or the accessibility infrastructure.
I've just tested Orca with Evolution with this patch in place. If I startup the latest Orca, then try to startup Evolution, Evolution will not fully display/render. Terminating Orca allows Evolution to then properly start. Still investigating...
Thanks for the quick feedback Rich. In my test examples, I couldn't find any instances of lost reciprocity, so getting the transcript from you helps a lot.
Here's what I see: 1) the old CHILD IS NONE! messages are gone, and the places where they occurred prior to the latest patch are not proximally associated with the CHILD.PARENT failures. 2) CHILD.PARENT reciprocity failures all seem to be in role-table or role-tree-table objects. 3) the CHILD.PARENT failures are all appearing deep in parts of the hierarchy which was previously truncated by the CHILD IS NONE! errors. This makes me think that libgail-gnome is not responsible for the parent-child failures in the transcript, as libgail-gnome only impacts the embedding relationships, i.e. proximal to the former CHILD IS NONE! problem. I don't think we have tables whose cells are embedded Bonobo components, as a rule, which further makes me think libgail-gnome is not responsible for the remaining reciprocity failures. You might see if Will is finding event-source-lookup problems like those he originally filed for 321814.
Looks like the Orca/Evolution hang has been fixed by using the very latest version of Orca that Will has just checked in.
The latest Orca code checks for child == child.parent, thus preventing this hang. I think there is still something broken in the hierarchy somewhere. But...this may be related more to the tickle me parent bug.
Is it still the case that, in general (i.e. outside of evolution), child/parent relationships are not symmetric across bonobo-component embedding?
Apologies for spam... ensuring Sun a11y folks are cc'ed on all current accessibility bugs.
marking fixed until someone shows otherwise...