Closed Bug 1469389 Opened 6 years ago Closed 2 years ago

separate IUnknown and nsISupports bits in accessibility-land

Categories

(Core :: Disability Access APIs, enhancement, P3)

enhancement

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: froydnj, Unassigned)

References

(Blocks 1 open bug)

Details

bsmedberg made mention of this in bug 1384914 comment 0 as one of the prerequisites to shrinking UUIDs.  Do you know what he was referring to (I don't, but I'm imagining its something like people implementing nsISupports and expecting to get IUnknown things without extra work, or vice versa?) and whether it's already been done?

(Maybe given that we have bug 1347040, we haven't dealt with this yet?)
Flags: needinfo?(surkov.alexander)
AFAIK, IUnknown has to be explicitly declared (e.g. using the macros in IUnknownImpl.h); there's nothing implicit with nsISupports. I guess the concern is that QueryInterface, AddRef and Release for XPCOM and MSCOM have the same names and very similar signatures, so at best, there's confusion/lack of clarity around which gets called when. At worst, that confusion might actually be a problem.

I think switching XPCOM QI to use ints might actually make things clearer here, since an int is very different to an IID and there's no possibility of conflation at all.
MSAA/IA2 are designed that way they never take IUknonwn as [in] argument, so we don't need to convert IUnknown objects to nsISupports. On the other hand we don't use QueryInterface to switch from nsISupports to IUnknown objects internally, because these interfaces are implemented on same objects and we do static_cast. So I'd say it shouldn't be a problem to change nsISupports::QueryInterface signature. And, right, it will fix bug 1347040.
Flags: needinfo?(surkov.alexander)
Priority: -- → P3

This might have become irrelevant before for other reasons - I'm not sure - but it's definitely irrelevant after bug 1694865, which separates COM (MSAA/IA2) stuff into a completely separate class hierarchy.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.