Previously, these stopped at an OuterDocAccessible.
Now, if an OuterDocAccessible is encountered, they continue the search in the remote child document.
As part of this, the bulk of the code has been moved into AccessibleOrProxy, since other callers might find this useful in future.
Also, xpcAccessible::ChildAtPoint now works on Windows.
Differential Revision: https://phabricator.services.mozilla.com/D66534
--HG--
extra : moz-landing-system : lando
This code (and an upcoming dependent patch) is currently behind a pref which is disabled by default, as there is uncertainty as to how it might impact the Dev Tools A11y Panel.
The A11y Panel is currently a moving target due to ongoing refactor for Fission.
This pref should be removed once that groundwork is complete and the impact has been verified.
This patch also includes fixes to some ProxyAccessible methods which previously crashed when there was no parent, as is the case for top level documents.
Without these fixes, the Dev Tools A11y Panel would crash the parent process.
Differential Revision: https://phabricator.services.mozilla.com/D66354
--HG--
extra : moz-landing-system : lando
We have several places that store either a ProxyAccessible* or an Accessible*
in the same member using a uintptr_t and stealing the lowest bit of the
pointer. The goal of the AccessibleOrProxy class is to make this simpler and
consolidate the logic involved in doing it.