Closed Bug 1730095 Opened 3 years ago Closed 2 years ago

Implement Mac text navigation using TextLeafPoint/Range

Categories

(Core :: Disability Access APIs, task)

Desktop
macOS
task

Tracking

()

RESOLVED FIXED
112 Branch
Tracking Status
firefox112 --- fixed

People

(Reporter: Jamie, Assigned: eeejay)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [ctw-m7])

Attachments

(6 files)

Mac's current text implementation uses layout directly. In order to work with the cache, it'll need to be reimplemented to use TextLeafPoint/Range.

No longer blocks: a11y-ctw
Whiteboard: [ctw-m2]
Whiteboard: [ctw-m2] → [ctw-m7]
Depends on: 1785930
Depends on: 1788116
Depends on: 1788132
Depends on: 1811092
Depends on: 1814220

This change gives a bit more flexibility for isolating issues and seeing which specific marker offset is giving trouble when a test fails.

Depends on D168445

Assignee: nobody → eitan
Status: NEW → ASSIGNED

When files shift around into other unified build files things go wrong.
This puts an identically named enum in a header do it doesn't get redefined.

Depends on D168446

This will be needed for another text marker implementation.

Depends on D168447

Done here in a standalone patch to keep things simpler. Includes a typedef to bridge the
gap for the next patch where we will reintroduce GeckoTextMarker as an abstracting
wrapper class.

Depends on D168448

Abstracting the text marker will allow us to have a drop-in caching version in the next patch.
In this change I moved the (de)serializing code to the proxy class and changed it from being a constructor to a static method. I also added standalone get-range-for methods instead of the enum because the caching version will transition away from it. It was useful in the non-caching version because it allowed us to have one sync message with an enum and a switch statement in the recieving end.

Depends on D168449

These text marker and marker range classes use our text cache and don't rely on any sync calls.

There are some edge cases where the range for boundary type code diverges from the non-caching one. The tests have amended exceptions for that in cases where the caching code is more correct, or at least not more wrong :)

Depends on D168450

Attachment #9315205 - Attachment description: Bug 1730095 - P2: Unify checked state enum in header. r?morgan! → Bug 1730095 - P2: Unify checked state enum in header and include needed headers. r?morgan!
Blocks: 1814511
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1dc8bcacf407 P1: Refactor text Mac marker tests. r=morgan https://hg.mozilla.org/integration/autoland/rev/4d9d8b5a51cb P2: Unify checked state enum in header and include needed headers. r=morgan https://hg.mozilla.org/integration/autoland/rev/a62158c231ae P3: Move common functions to MacUtils. r=morgan https://hg.mozilla.org/integration/autoland/rev/abf254883880 P4: Rename GeckoTextMarker to LegacyTextMarker. r=morgan https://hg.mozilla.org/integration/autoland/rev/0bf801878f0b P5: Add GeckoTextMarker proxy class. r=morgan https://hg.mozilla.org/integration/autoland/rev/34f8b14723e0 P6: Introduce CachedTextMarker on MacOS. r=morgan
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: