Closed Bug 1564549 Opened 1 year ago Closed 5 months ago

Replace Android JS layer with native functions

Categories

(Core :: Disability Access APIs, task)

All
Android
task
Not set

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: eeejay, Assigned: eeejay)

References

(Blocks 3 open bugs)

Details

Attachments

(8 files, 10 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

We currently our presentational code (events, accessible tree) in our native module and most of our interactive code (accessibility focus, text navigation, clipboard) in javascript.

The javascript layer is a relic from the previous mobile accessibility implementation. It has not been ported to native because it was a higher priority to get something working fast. It makes sense to complete the transition to native code for the following reasons:

  1. Complexity will be reduced if the functionality will be consolidated to one module, and it will be much more accessible to newcomers.
  2. Common points of reference: In javascript we don't have access to the accessible's platform virtual view id. This means that when clients want to perform actions on specific nodes we need to guess which one they want to use, like the currently focused one, or current virtual cursor position. If we migrate this to native, there will be a common point of reference as to which node is acted upon and which one emits an event.
  3. Performance/memory: We will not have the additional xpc layer.
  4. Removing the xpc code will allow us to have cleaner and more predictable shutdown when not in use.
Assignee: nobody → eitan
Blocks: 1351097
Blocks: 1564996
Blocks: 1564997
Blocks: 1564507

This is to allow platform-specific IPC calls without polluting the
namespace for other platforms. This works nicely with wrappers.

Depends on D37628

The rule takes a granularity constant as an argument in the constructor.

Depends on D37629

Some of these should be implemented in the future.

Depends on D37634

Stop dispatching GeckoView::AccessibilitySettings from java. This
prevents AccessFu from activating. We'll remove it entirely in a future
patch.

Depends on D37635

Depends on D37636

Attachment #9077219 - Attachment is obsolete: true
Attachment #9077218 - Attachment is obsolete: true
Attachment #9077217 - Attachment is obsolete: true
Attachment #9077216 - Attachment is obsolete: true
Attachment #9077215 - Attachment is obsolete: true
Attachment #9077214 - Attachment is obsolete: true
Attachment #9077213 - Attachment is obsolete: true
Attachment #9077212 - Attachment is obsolete: true
Attachment #9077211 - Attachment is obsolete: true
Attachment #9077210 - Attachment is obsolete: true

I'm going to set up a blocker bug so that a11y module folks could design a good solution for platform specific ipdl calls.

Depends on: 1565728
Depends on: 1580019

The rule takes a granularity constant as an argument in the constructor.

Depends on D45597

Some of these should be implemented in the future.

Depends on D45602

Depends on D45603

Pushed by eisaacson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/aca91e9add16
Add action forwarding macro. r=Jamie
https://hg.mozilla.org/integration/autoland/rev/c38e72058869
Introduce native traveral rule. r=yzen
https://hg.mozilla.org/integration/autoland/rev/103dbf465704
Implement move and explore by touch natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/aada27f6ad6e
Implement text navigation natively. r=geckoview-reviewers,Jamie,snorp
https://hg.mozilla.org/integration/autoland/rev/34441585469f
Implement set selection natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/15a754fb192e
Implement clipboard actions natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/7f38c6ddd009
Remove event dispatching to dead code. r=geckoview-reviewers,snorp
https://hg.mozilla.org/integration/autoland/rev/a6b83802832c
Remove AccessFu. r=geckoview-reviewers,yzen,snorp
Attachment #9092224 - Attachment description: Bug 1564549 - Remove AccessFu. r?yzen!,#geckoview-reviewers! → Bug 1564549 - Remove AccessFu. r=yzen,snorp
Pushed by eisaacson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ab7bb18bcca2
Add action forwarding macro. r=Jamie
https://hg.mozilla.org/integration/autoland/rev/83b8e1b49e1e
Introduce native traveral rule. r=yzen
https://hg.mozilla.org/integration/autoland/rev/414ba8c039e6
Implement move and explore by touch natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/9bbf2b19dcfd
Implement text navigation natively. r=geckoview-reviewers,Jamie,snorp
https://hg.mozilla.org/integration/autoland/rev/95544c7598d5
Implement set selection natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/348ec040eaa2
Implement clipboard actions natively. r=geckoview-reviewers,yzen,snorp
https://hg.mozilla.org/integration/autoland/rev/87148740a6c2
Remove event dispatching to dead code. r=geckoview-reviewers,snorp
https://hg.mozilla.org/integration/autoland/rev/5eca1b569290
Remove AccessFu. r=geckoview-reviewers,yzen,snorp

Needed to conditionally remove AccessFu.properties from shipping on desktop.

Flags: needinfo?(eitan)
See Also: → 1587557
Regressions: 1590929
Regressions: 1604103
You need to log in before you can comment on or make changes to this bug.