Closed
Bug 370790
Opened 18 years ago
Closed 18 years ago
implement IAccessibleAction
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: surkov, Assigned: surkov)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
benjamin
:
superreview+
|
Details | Diff | Splinter Review |
Add support of IA2 interfaces for MSAA wrap objects, just to append their properties and methods and don't implement them.
Assignee | ||
Updated•18 years ago
|
Assignee | ||
Updated•18 years ago
|
Status: NEW → ASSIGNED
Summary: add IA2 support for MSAA wrap objects → implement IAccessibleAction
Assignee | ||
Comment 1•18 years ago
|
||
Attachment #258201 -
Flags: review?(aaronleventhal)
Assignee | ||
Comment 2•18 years ago
|
||
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 3•18 years ago
|
||
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+
Assignee | ||
Comment 4•18 years ago
|
||
(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+
Assignee | ||
Comment 5•18 years ago
|
||
Fixed Aaron's comment, updated to trunk
Attachment #258201 -
Attachment is obsolete: true
Attachment #258935 -
Flags: superreview?(benjamin)
Attachment #258201 -
Flags: superreview?(benjamin)
Assignee | ||
Comment 6•18 years ago
|
||
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 7•18 years ago
|
||
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+
Assignee | ||
Comment 8•18 years ago
|
||
(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
Comment 9•18 years ago
|
||
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 → ---
Comment 10•18 years ago
|
||
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);
Comment 11•18 years ago
|
||
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.
Comment 12•18 years ago
|
||
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 ago → 18 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•