Implement getSelectionRects feature for TextMetrics #46057
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change creates a new API method for TextMetrics objects in canvas
that uses font data and precalculated text runs, to calculate the
selection rects for an interval of characters. This interval is defined
by character positions in the input text.
The selection rects are calculated using the existing
Font::SelectionRectForText
method, but on a logical run by runbasis to ensure correct management of bidi text inputs.
The target is to match the rects that would be obtained by using the DOM
from selecting this same interval using
Selection.getRangeAt(0).getClientRects()
after having set the selectionwith a range.
The new API was enabled under the
ExtendedTextMetrics
flag.Change-Id: Ia05ce8e55e3e73a491354293502b457ad712026e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5353031
Reviewed-by: Jean-Philippe Gravel <jpgravel@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Andres Ricardo Perez <andresrperez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1300725}