Fission a11y: Send embedder iframe as parent COM proxy for embedded OOP DocAccessibleChild
Categories
(Core :: Disability Access APIs, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox69 | --- | fixed |
People
(Reporter: Jamie, Assigned: Jamie)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
Bug 1543307 will expose the embedded OOP iframe document accessible as a child of the embedder iframe accessible via COM. Clients also need the reverse relationship: when they query the parent of the embedded iframe document, they want to receive the embedder iframe accessible.
- The parent process already has a ProxyAccessible for the iframe.
- After bug 1543287, DocAccessibleParent::AddChildDoc retrieves this ProxyAccessible.
- We can already retrieve a COM proxy for any ProxyAccessible using ProxyAccessible::GetCOMInterface.
- Finally, we can send the parent COM proxy for a remote document using DocAccessibleParent::SendParentCOMProxy.
AddChildDoc needs some way to know that it needs to send the COM proxy. TabParent::RecvPDocAccessibleConstructor (which calls AddChildDoc) already knows this, so AddChildDoc may need an additional argument. Alternatively, AddChildDoc could somehow ask the iframe ProxyAccessible or the child DocAccessibleParent.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
DocAccessibleParent already has IsTopLevel(), which identifies a document at the top level of the hierarchy; i.e. it has no parents.
Now that we have out-of-process iframes, we need to be able to identify and retrieve documents at the top level of their content process, even if they are embedded by another remote document.
DocAccessibleParent::IsTopLevelInContentProcess() has been introduced to achieve this.
BrowserParent::GetTopLevelDocAccessible() now uses this instead of IsTopLevel(), since we want to be able to get the top DocAccessibleParent even for a BrowserParent for an out-of-process iframe.
Assignee | ||
Comment 2•5 years ago
|
||
Previously, a COM proxy was only sent from content for top level documents.
Now, a COM proxy is also sent (and needed) for out-of-process iframe documents.
This change adjusts GetProxiedAccessibleInSubtree accordingly.
Assignee | ||
Comment 3•5 years ago
|
||
Aside from the parent being needed by the client, this is also important because events from the embedded document are deferred until the parent COM proxy is received.
Comment 5•5 years ago
|
||
Backed out 4 changesets (Bug 1553706, Bug 1543313) for failures in DocAccessibleChild.cpp
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&revision=1a8bea02205d138e7881bcf63aff985ae1f2d64d&searchStr=browser%2Cchrome
Failure logs: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=249302284&repo=autoland&lineNumber=2539
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=249302225&repo=autoland&lineNumber=2793
Backout: https://hg.mozilla.org/integration/autoland/rev/523d45768463b8070a41fc606bdd9cbc3c352751
Assignee | ||
Updated•5 years ago
|
Comment 7•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/3c619a698b96
https://hg.mozilla.org/mozilla-central/rev/ef50240bdb1f
https://hg.mozilla.org/mozilla-central/rev/379dc9cb2ae9
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Description
•