Fission a11y: Expose COM proxy for embedded OOP iframe document as child of embedder OuterDocAccessible

RESOLVED FIXED in Firefox 69

Status

()

enhancement
P2
normal
RESOLVED FIXED
4 months ago
2 months ago

People

(Reporter: Jamie, Assigned: Jamie)

Tracking

(Blocks 2 bugs)

unspecified
mozilla69
All
Windows
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Fission Milestone:M3, firefox69 fixed)

Details

Attachments

(1 attachment)

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:

  1. 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.
  2. 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.
Depends on: 1543575
Blocks: 1543575
No longer depends on: 1543575
Blocks: 1553706

Windows accessibility clients talk directly to the content process via COM.
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.
This is exposed on the embedder's BrowserBridgeChild, so we can use this when a client asks for the child of the OuterDocAccessible.

Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bb49389d34ba
For out-of-process iframes on Windows, return the embedded document as a child of the OuterDocAccessible. r=eeejay
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Fission Milestone: --- → M3
Blocks: a11y-fission
You need to log in before you can comment on or make changes to this bug.