Fission a11y: Expose COM proxy for embedded OOP iframe document on embedder BrowserBridgeChild
Categories
(Core :: Disability Access APIs, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox69 | --- | fixed |
People
(Reporter: Jamie, Assigned: Jamie)
References
Details
Attachments
(3 files)
On Windows, a11y clients communicate directly with accessibles in the content process using COM. For e10s, embedded iframe documents are in the same process as their embedder iframe, so they use the same a11y tree and thus no additional work is required to support iframes. For Fission, iframe documents can be in a different process.
In order to expose an OOP iframe document as a child of the embedder iframe via COM, the embedder process needs a COM proxy for the iframe document.
- The embedded iframe document must send its COM proxy to the parent process. This will occur in PBrowser::PDocAccessible constructor as it does for top level documents.
- After bug 1543287, TabParent::RecvPDocAccessibleConstructor will call DocAccessibleParent::AddChildDoc on the embedder document.
- The parent process must send the proxy received in (1) to the embedder document's content process. In AddChildDoc, a new PBrowserBridge method will need to be called which sends this proxy to be used as the child of the iframe. This will be exposed on BrowserBridgeChild.
Assignee | ||
Comment 1•5 years ago
|
||
For an out-of-process iframe, we need to be able to return a remote embedder accessible as a child of an OuterDocAccessible.
For parent process OuterDocAccessibles, we use the ProxyAccessible for the embedded document.
In the case of out-of-process iframes, there is no ProxyAccessible for the embedded document, since the iframe is in a content process and ProxyAccessibles only exist in the parent process.
Like ProxyAccessibleWrap, the only real method that gets called is GetNativeInterface, which returns a COM proxy for the document.
Assignee | ||
Comment 2•5 years ago
|
||
Assignee | ||
Comment 3•5 years ago
|
||
This will be later exposed as a child of the embedder OuterDocAccessible.
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eed17a01f44f part 1: Add a stub AccessibleWrap used in a Windows content process for an embedded document residing in another content process. r=eeejay https://hg.mozilla.org/integration/autoland/rev/02b71771b27b part 2: Add PBrowserBridge::SetEmbeddedDocAccessibleCOMProxy so the parent can send the child the COM proxy for the embedded document accessible. r=eeejay,nika https://hg.mozilla.org/integration/autoland/rev/aa4c140e2192 part 3: For out-of-process iframes, send the embedded document accessible's COM proxy to the embedder. r=eeejay
Comment 5•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/eed17a01f44f
https://hg.mozilla.org/mozilla-central/rev/02b71771b27b
https://hg.mozilla.org/mozilla-central/rev/aa4c140e2192
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Description
•