GNOME Bugzilla – Bug 516121
Orca stalls on barackobama.com when navigating by heading in FF3
Last modified: 2008-07-22 19:33:41 UTC
From Lorenzo on the Orca list: I am currently viewing the page at http://my.barackobama.com/page/group/1000AmericansforObama and have run into a slight problem. I am trying to navigate by headings pressing h and H, but once I get to the directory heading, I can go no further. When I press h again from the directory heading,orca hangs and it refuses to speak in any application until I kill orca and restart it. The same thing happens if I try to get to the last heading on the page by typing H. It almost seems as if orca is slowly reading the probably very long page trying to find the next heading and never getting to the bottom. I waited almost a minute before giving up. Perhaps I will have to navigate the page a different way. BTW, I am running the latest svn version of orca as of last night and the firefox -3.0 from Ubuntu Hardy, also the latest package build. I'm not sure if a login is required to view the page as I have it, but I can privately provide that info if necessary.
Created attachment 105095 [details] debug.out Turns out that we don't hang; rather, we stall. I performed the steps in the report again and this time just let Orca do its thang. After several minutes had passed, Orca announced the next heading (Events). If you look at the attached: Line 2999 is the queuing of the key release event for H. Line 3000 - Line 7488 are all: ---------> QUEUEING EVENT object:property-change:accessible-name YIKES! Almost 2500 events being queued as a result of a lousy keypress?!?!? I'm going to see if I can trigger this via Accerciser. In the meantime, any ideas about what we can do when flooded with events? Is there some way to plug our ears and sing "nah nah nah not listening"?
Created attachment 105100 [details] [review] proposed patch This is a defensive patch. Seems that in between directory and events is a table with over 8000 children. Here's my proposal: If there are more than 1000 children in an object, find{Next,Previous}Object() should ignore it. :-) With this patch, I can move almost instantly between directory and events via structural navigation. pylinted. Not yet regression tested. Please test.
(In reply to comment #2) > This is a defensive patch. Seems that in between directory and events is a > table with over 8000 children. Here's my proposal: If there are more than > 1000 children in an object, find{Next,Previous}Object() should ignore it. :-) This seems reasonable to me. This is a relatively isolated patch and the Collections work being done in bug 491837 may also obsolete this section of the code. If you are comfortable with this patch and it tests well, I say commit. Thanks! :-)
Patch committed. Moving to pending.