Implement Mac text navigation using TextLeafPoint/Range
Categories
(Core :: Disability Access APIs, task)
Tracking
()
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.
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
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
Updated•2 years ago
|
Assignee | ||
Comment 2•2 years ago
|
||
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
Assignee | ||
Comment 3•2 years ago
|
||
This will be needed for another text marker implementation.
Depends on D168447
Assignee | ||
Comment 4•2 years ago
|
||
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
Assignee | ||
Comment 5•2 years ago
|
||
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
Assignee | ||
Comment 6•2 years ago
|
||
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
Updated•2 years ago
|
Comment 8•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1dc8bcacf407
https://hg.mozilla.org/mozilla-central/rev/4d9d8b5a51cb
https://hg.mozilla.org/mozilla-central/rev/a62158c231ae
https://hg.mozilla.org/mozilla-central/rev/abf254883880
https://hg.mozilla.org/mozilla-central/rev/0bf801878f0b
https://hg.mozilla.org/mozilla-central/rev/34f8b14723e0
Description
•