In order to expose an OOP iframe document accessible as a child of the embedder iframe accessible via COM, the embedder process needs a COM proxy for the iframe document accessible. Bug 1543298 exposes the embedded iframe document COM proxy on the embedder's BrowserBridgeChild. This COM proxy must be returned to clients when they query for the child of the iframe accessible.
This will probably require Windows specific overrides in one of two places:
- OuterDocAccessible::ChildCount and OuterDocAccessible::GetChildAt. However, since this returns Accessible*, this would also require a new AccessibleWrap subclass similar to ProxyAccessibleWrap which overrides GetNativeInterface to return the iframe document COM proxy. The question is whether it is okay to create that wrapper each time the client requests a child, or failing that, what would initially create the wrapper object and what would keep it alive.
- IAccessible::accChildCount, IAccessible::get_accChild and IAccessible::accNavigate. We'd also need to make QI to IEnumVARIANT return E_NOINTERFACE for the iframe accessible. This would either require a new OuterDocAccessibleWrap or adding conditions to AccessibleWrap.