Closed Bug 370790 Opened 18 years ago Closed 18 years ago

implement IAccessibleAction

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: surkov, Assigned: surkov)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Add support of IA2 interfaces for MSAA wrap objects, just to append their properties and methods and don't implement them.
No longer blocks: 370676
Depends on: 370676
Status: NEW → ASSIGNED
Summary: add IA2 support for MSAA wrap objects → implement IAccessibleAction
Attached patch patch (obsolete) (deleted) — Splinter Review
Attachment #258201 - Flags: review?(aaronleventhal)
Comment on attachment 258201 [details] [diff] [review] patch ginn, please review especially atk part benjamin, please look at windows part
Attachment #258201 - Flags: superreview?(benjamin)
Attachment #258201 - Flags: review?(ginn.chen)
Comment on attachment 258201 [details] [diff] [review] patch r+ on nsAccessibleWrap part only, except for this problem: +nsAccessibleWrap::nActions(long *aNumActions) Always returns E_FAIL, but should succeed sometimes.
Attachment #258201 - Flags: review?(aaronleventhal) → review+
(In reply to comment #3) > (From update of attachment 258201 [details] [diff] [review]) > +nsAccessibleWrap::nActions(long *aNumActions) > Always returns E_FAIL, but should succeed sometimes. > Ah, right. Thank you for the catch. I'd like to fix it after other reviews if reviews are fine with this.
Attachment #258201 - Flags: review?(ginn.chen) → review+
Attached patch patch2 (deleted) — Splinter Review
Fixed Aaron's comment, updated to trunk
Attachment #258201 - Attachment is obsolete: true
Attachment #258935 - Flags: superreview?(benjamin)
Attachment #258201 - Flags: superreview?(benjamin)
checked in on trunk to continue the work, but I still like to get benjamin's notice that all is fine if it is fine for sure :). So, leaving bug open.
Comment on attachment 258935 [details] [diff] [review] patch2 I know almost nothing about this code, so I haven't reviewed for correctness. It does look right from an XPCOM point of view.
Attachment #258935 - Flags: superreview?(benjamin) → superreview+
(In reply to comment #7) > (From update of attachment 258935 [details] [diff] [review]) > I know almost nothing about this code, so I haven't reviewed for correctness. > It does look right from an XPCOM point of view. > It's fine. Actually I looked for correctness checking. Thank you.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Interestingly, this piece of code caused to super annoying startup crash bug 376239. I have no idea why this snippet makes it crash. Maybe Window-Eyes and JAWS are using one of these interfaces, and their definition doesn't match ours. I don't know yet. It took me and Wayne a long time to track this down. I had to back out one patch at a time for the last 2 weeks. @@ -105,20 +109,22 @@ STDMETHODIMP nsAccessibleWrap::QueryInte if (IID_IUnknown == iid || IID_IDispatch == iid || IID_IAccessible == iid) *ppv = NS_STATIC_CAST(IAccessible*, this); else if (IID_IEnumVARIANT == iid && !gIsEnumVariantSupportDisabled) { long numChildren; get_accChildCount(&numChildren); if (numChildren > 0) // Don't support this interface for leaf elements *ppv = NS_STATIC_CAST(IEnumVARIANT*, this); - } - else if (IID_IServiceProvider == iid) { + } else if (IID_IServiceProvider == iid) *ppv = NS_STATIC_CAST(IServiceProvider*, this); - } + else if (IID_IAccessible2 == iid) + *ppv = NS_STATIC_CAST(IAccessible2*, this); + else if (IID_IAccessibleAction == iid) + *ppv = NS_STATIC_CAST(IAccessibleAction*, this); if (NULL == *ppv) return nsAccessNodeWrap::QueryInterface(iid, ppv); (NS_REINTERPRET_CAST(IUnknown*, *ppv))->AddRef(); return S_OK; }
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Blocks: 376239
In fact it doesn't crash if we don't allow the QI to IAccessible2*. Commenting these lines fixes the crash: //else if (IID_IAccessible2 == iid) //*ppv = NS_STATIC_CAST(IAccessible2*, this);
The version of Window-Eyes 6.1 Beta 1A I have is in fact trying to use IAccessible2. I suspect an API mismatch. If the version of Window-Eyes is too old the crash probably doesn't happen. Also, if we upgrade to the very latest Window-Eyes and IAccessible2 IDL I bet the crash goes away.
I decided to close this again. I backed out the offending IAccessible2 QI and and opened a new bug to fix just that. It's bug 376753.
No longer blocks: 376239
Status: REOPENED → RESOLVED
Closed: 18 years ago18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: