Closed Bug 1543282 Opened 5 months ago Closed 3 months ago

Fission a11y: Expose accessible id of OOP iframes on BrowserBridgeParent

Categories

(Core :: Disability Access APIs, task, P1)

task

Tracking

()

RESOLVED FIXED
mozilla69
Fission Milestone M3
Tracking Status
firefox69 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

For e10s, iframes are in the same process as their embedder document. This means that the content process can easily tell the parent process to add the iframe document as a child of the iframe accessible, since the content process knows the accessible id for the iframe. For Fission, iframes might be in a different process to the embedder document. That means that the embedded iframe document content process isn't aware of the accessible id of its parent iframe.

In order to add the embedded iframe document as a child of the embedder iframe accessible, the parent process needs to be able to easily get the accessible id associated with that remote iframe. Each remote iframe has an associated PBrowserBridge actor. Thus, we will send the iframe accessible id up from content and expose it on BrowserBridgeParent.

Type: defect → task
Blocks: 1543287
Fission Milestone: --- → M2
Fission Milestone: M2 → M3

We do this when the OuterDocAccessible is constructed.
This will be used later in the parent process to link the trees together when the iframe document accessible is added.

Supporting out-of-process iframes requires us to hold onto a DocAccessibleParent in BrowserBridgeParent.
However, we can't guarantee the order of cleanup between the two content processes.
Therefore, we need reference counting to kee the object alive.

Attachment #9065313 - Attachment description: Bug 1543282 part 1: AdD PBrowserBridge::SetAccessible so the child can tell the parent the info for the iframe accessible. → Bug 1543282 part 2: Add PBrowserBridge::SetEmbedderAccessible so the child can tell the parent the embedder iframe accessible.
Attachment #9065314 - Attachment description: Bug 1543282 part 2: For iframes rendered in other processes, tell the parent the info for the iframe accessible. → Bug 1543282 part 3: For iframes rendered in other processes, tell the parent the embedder iframe accessible.
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/094829c443f3
part 1: Reference counting for DocAccessibleParent. r=eeejay,nika
https://hg.mozilla.org/integration/autoland/rev/ac2d3dd7d704
part 2: Add PBrowserBridge::SetEmbedderAccessible so the child can tell the parent the embedder iframe accessible. r=nika,eeejay
https://hg.mozilla.org/integration/autoland/rev/60ecb1a2cb86
part 3: For iframes rendered in other processes, tell the parent the embedder iframe accessible. r=eeejay
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Regressions: 1555362
Blocks: a11y-fission
You need to log in before you can comment on or make changes to this bug.