Closed Bug 1822004 Opened 1 year ago Closed 5 months ago

[CTW] Use cached hit testing instead of Android specific implementation

Categories

(Core :: Disability Access APIs, task)

ARM64
Android
task

Tracking

()

RESOLVED FIXED
122 Branch
Tracking Status
firefox122 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

(Whiteboard: [ctw-postship])

Attachments

(1 file)

The cache is now always enabled on Android. However, we still use an Android specific implementation for hit testing based on DOM events. Originally, we did this because CtW didn't support hit testing when we needed to enable it on Android. Now that it does, it'd make sense to have all platforms using the same implementation.

Given that hit testing is more critical on mobile than it is on desktop, we will need to be careful here, as any bugs in CtW hit testing will be much worse for users on Android. We should perhaps start by switching to CtW hit testing only on Nightly for now and letting it bake for a release or two.

We should perhaps start by switching to CtW hit testing only on Nightly for now and letting it bake for a release or two.

Eitan, do you think nightly only is worthwhile initially? I originally thought it might be a good idea, but given our user base on Android, I wonder whether we'll get sufficient exposure to make it worth the churn.

Flags: needinfo?(eitan)

I would let it ride the trains, but also not remove the custom DOM event for a couple of releases until we are happy with this EBT implementation.

Flags: needinfo?(eitan)
Blocks: 1862802
Blocks: 1862805

This unifies hit testing across all platforms.
It also removes one of the few remaining uses of virtual cursor change events.

Here is a thought.. use the same child process hit testing, but instead of the vc changed event just create a new accessible event type like (EXPLORED_BY_TOUCH) that doesn't have any special fields. That we we could use that event identifier and its source accessible in the parent process. Just a thought! I know that robust hit testing in parent is the goal..

Attachment #9361745 - Attachment description: WIP: Bug 1822004 WIP: On Android, use RemoteAccessible (CtW) hit testing instead of a DOM event. → Bug 1822004 WIP: On Android, use RemoteAccessible (CtW) hit testing instead of a DOM event.
Assignee: nobody → jteh
Attachment #9361745 - Attachment description: Bug 1822004 WIP: On Android, use RemoteAccessible (CtW) hit testing instead of a DOM event. → Bug 1822004: On Android, use RemoteAccessible (CtW) hit testing instead of a DOM event.
Status: NEW → ASSIGNED
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9e53bdb0bfcf
On Android, use RemoteAccessible (CtW) hit testing instead of a DOM event. r=eeejay

(In reply to Eitan Isaacson [:eeejay] from comment #4)

Here is a thought.. use the same child process hit testing, but instead of the vc changed event just create a new accessible event type like (EXPLORED_BY_TOUCH) that doesn't have any special fields. That we we could use that event identifier and its source accessible in the parent process.

For the record, Eitan and I discussed this on Slack. This would certainly be cleaner than vc events and allow us to get rid of those, while still giving us the benefit of being able to hit test in the content process, which might be more accurate in some cases. On the flip side, we can't do this on any other platform. One of the major advantages of CtW is that we have consistent cross-platform code, which makes things easier to maintain. If something breaks on one platform, it breaks on all platforms. If we fix it on one platform, we fix it on others. etc. This is especially true here given the complexity in hit testing code. I know we have bugs in our LocalAccessible hit testing code related to transforms that we've fixed in RemoteAccessible, but aren't bothering to fix for LocalAccessible (because LocalAccessible isn't usually used for super complex web documents), just as an example.

Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → 122 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: