Closed Bug 1614871 Opened 4 years ago Closed 4 years ago

[Fission] non-Windows ProxyAccessible::ChildAtPoint needs to cross process boundaries into OOP iframes

Categories

(Core :: Disability Access APIs, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla76
Fission Milestone M6
Tracking Status
firefox76 --- fixed

People

(Reporter: eeejay, Assigned: Jamie)

References

Details

Attachments

(2 files)

Currently, the proxy accessible will only query its own DocAccessibleChild for the deepest child. We need to allow proxies to dig into child documents as well.

It just occurred to me: won't this be broken for any iframe, not just Fission iframes?

  1. Does Accessible::ChildAtPoint traverse into in-process subdocuments? If not, it'll stop at the iframe OuterDoc.
  2. Even if it does, it'll return an id from the iframe document. ProxyAccessible will then try to use its own DocAccessibleParent... but it'll be the wrong document.
Fission Milestone: --- → M6

(In reply to James Teh [:Jamie] from comment #1)

  1. Does Accessible::ChildAtPoint traverse into in-process subdocuments?

It does:
https://searchfox.org/mozilla-central/rev/7e92a667e3829831c31e8d46aefe7ef67ad5be1c/accessible/generic/OuterDocAccessible.cpp#99

  1. Even if it does, it'll return an id from the iframe document. ProxyAccessible will then try to use its own DocAccessibleParent... but it'll be the wrong document.

I wonder if PDocAccessible::AccessibleAtPoint can return a PDocAccessible as well as an id? That will fix the e10s case, but we'll still need code in ProxyAccessible to deal with the recursion for the Fission case.

Blocks: 1595979
Summary: [Fission] ProxyAccessible::ChildAtPoint needs to cross process boundaries into OOP iframes → [Fission] non-Windows ProxyAccessible::ChildAtPoint needs to cross process boundaries into OOP iframes

Accessible::ChildAtPoint can return an Accessible in a descendant document.
Thus, we must return the result PDocAccessible via IPC, not just the id.
Previously, we only returned the id, but we'd fail when we tried to look it up if it belonged to a descendant document.

Assignee: nobody → jteh
Status: NEW → ASSIGNED

When we hit an OOP iframe, we must walk into the child document and continue the search from there.

Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0f241c48730c
part 1: Make non-Windows ProxyAccessible::ChildAtPoint cross into in-process iframes. r=eeejay
https://hg.mozilla.org/integration/autoland/rev/4615751fc827
part 2: Make non-Windows ProxyAccessible::ChildAtPoint cross into OOP iframes. r=eeejay
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76

Eitan, you should hopefully now be able to hit test on both normal (in-process) and Fission (out-of-process) iframes on Mac. Would you be able to test and let me know if it works? Thanks.

Flags: needinfo?(eitan)
Regressions: 1622751

Tested with Accessibility Inspector on Nightly on OSX. Hittesting works inside of embedded youtube videos.

Thanks!

Flags: needinfo?(eitan)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: