Bug 1756727: Return E_NOTIMPL for a remote document in MsaaDocAccessible::get_accValue. r=morgan

The code previously assumed that the base MsaaAccessible implementation would return failure for a remote Accessible.
That is no longer true, so we crashed when we try to get the local DocAccessible.
For now, we explicitly check for remote and return E_NOTIMPL in that case.

Differential Revision: https://phabricator.services.mozilla.com/D139450
This commit is contained in:
James Teh 2022-02-23 21:29:13 +00:00
Родитель a9fcf6f459
Коммит 71e7b0d8cd
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -153,9 +153,14 @@ MsaaDocAccessible::get_accValue(VARIANT aVarChild, BSTR __RPC_FAR* aValue) {
HRESULT hr = MsaaAccessible::get_accValue(aVarChild, aValue);
if (FAILED(hr) || *aValue || aVarChild.lVal != CHILDID_SELF) return hr;
DocAccessible* docAcc = DocAcc();
// MsaaAccessible::get_accValue should have failed (and thus we should have
// returned early) if the Accessible is dead.
MOZ_ASSERT(mAcc);
if (mAcc->IsRemote()) {
return E_NOTIMPL;
}
DocAccessible* docAcc = DocAcc();
// This is not remote, so it must be a local DocAccessible.
MOZ_ASSERT(docAcc);
// If document is being used to create a widget, don't use the URL hack
roles::Role role = docAcc->Role();