Bug 1514093 part 2: Marshal the result from IAccessible::get_accSelection as IEnumVARIANT. r=MarcoZ

Our accSelection implementation always returns an IUnknown which clients QI to IEnumVARIANT.
Marshaling as IUnknown works fine in this case, but it's more efficient and correct to marshal the correct interface.
Also, without this, we'd hit an assertion.

Depends on D16662

Differential Revision: https://phabricator.services.mozilla.com/D16663

--HG--
extra : moz-landing-system : lando
This commit is contained in:
James Teh 2019-01-16 08:13:20 +00:00
parent 27ee39f62b
commit 487948a690

View File

@ -440,6 +440,13 @@ HandlerProvider::GetEffectiveOutParamIid(REFIID aCallIid, ULONG aCallMethod) {
return NEWEST_IA2_IID;
}
// IAccessible::get_accSelection
if ((aCallIid == IID_IAccessible || aCallIid == IID_IAccessible2 ||
aCallIid == IID_IAccessible2_2 || aCallIid == IID_IAccessible2_3) &&
aCallMethod == 19) {
return IID_IEnumVARIANT;
}
MOZ_ASSERT(false);
return IID_IUnknown;
}