Closed Bug 386821 Opened 13 years ago Closed 8 years ago

need better solution for firing delayed event against xul tree

Categories

(Core :: Disability Access APIs, defect)

x86
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla9

People

(Reporter: evan.yan, Assigned: surkov)

References

(Blocks 1 open bug)

Details

(Keywords: access)

Attachments

(1 file)

originate from bug 386161.

Currently we use the selected xul treeitem accessible instead of xul tree accessible, like in nsRootAccessible::HandleEventWithTarget() and nsAccEvent::GetAccessibleByNode() (after the patch of bug 386161 checked in).

If we want to fire delayed event against xul tree itself or unselected treeitem, there will be problem.
Evan, can you take this bug?

What is it blocking?
Assignee: aaronleventhal → nobody
It is not blocking anything for now.
Just to log a potential problem here, in case one day we have the requirement of firing event against xul tree itself or unselected treeitem.

Blocks: tablea11y
Attached patch patchSplinter Review
fix focus event firing, other events look good
Assignee: nobody → surkov.alexander
Status: NEW → ASSIGNED
Attachment #552314 - Flags: review?(trev.saunders)
This look good, but I have  still should look through the 40 or so places we create an event.

It seems fairly inconsistant that atk and mac both assert in FirePlatformEvent() that AccEvent->GetAccessible() returns a accessible, but GetAccessible(0 checks for its node being null instead of taking it as an invariant that it isn't null and getting the accessible for the node without checking the node to see if its null.
(In reply to Trevor Saunders (:tbsaunde) from comment #4)

> It seems fairly inconsistant that atk and mac both assert in
> FirePlatformEvent() that AccEvent->GetAccessible() returns a accessible, but
> GetAccessible(0 checks for its node being null instead of taking it as an
> invariant that it isn't null and getting the accessible for the node without
> checking the node to see if its null.

event code is little bit inconsistent and the logic is little bit wobbly. Ideally event should be always fired for not null accessible and keep weak accessible pointer rather than addrefed. All we have now is result of code reorgs by parts.
Comment on attachment 552314 [details] [diff] [review]
patch

SORRY IT TOOK SO LONG TO FINISH THIS UP.
Attachment #552314 - Flags: review?(trev.saunders) → review+
http://hg.mozilla.org/mozilla-central/rev/f9379ad86c5d
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla9
You need to log in before you can comment on or make changes to this bug.