Fission a11y: Set DocAccessibleParent::mDocProxyStream on child doc, not parent doc
Categories
(Core :: Disability Access APIs, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: Jamie, Assigned: Jamie)
References
Details
Attachments
(1 file)
DocAccessibleParent::AddChildDoc sends a COM proxy for the embedded document to the embedder process hosting the iframe. This gets returned as the child of the embedder OuterDocAccessible. Whenever we send a proxy to a content process, we must hold a PreservedStreamPtr in the parent process. In this case, currently, we set mDocProxyStream on the parent (embedder) document. It occurred to me that if a document has multiple OOP iframes, we'll end up losing the PreservedStreamPtr for all but the last added child OOP document. I think we should set mDocProxyStream on the child document instead.
Assignee | ||
Comment 1•5 years ago
|
||
This feels like an m5 bug to me, but I'm not quite sure how the m5, m5a and m5b milestones should be used.
Assignee | ||
Comment 2•5 years ago
|
||
Curiously, nothing seemed to break in a quick test with the current code; I could still retrieve both child documents:
data:text/html,foo<iframe src="https://google.com/nf"></iframe>bar<iframe src="https://files.jantrid.net/nf"></iframe>
I'm still pretty sure this is wrong, though. I will investigate further.
That said, it can probably be m6 given that it doesn't seem to break anything.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
DocAccessibleParent::AddChildDoc sends a COM proxy for the embedded document to the embedder process hosting the iframe.
This gets returned as the child of the embedder OuterDocAccessible.
Whenever we send a proxy to a content process, we must hold a PreservedStreamPtr in the parent process.
Previously, we set mDocProxyStream on the parent (embedder) document.
However, if a document had multiple OOP iframes, this meant we ended up losing the PreservedStreamPtr for all but the last added child OOP document.
We now set mDocProxyStream on the child document instead, since there can only be one embedder OuterDocAccessible per child document.
Comment 5•5 years ago
|
||
bugherder |
Description
•