Reland "New TextBreakIterator's default behavior breaks after space run"
This is a reland of 1cb4c9a7 Rebaselined a few tests for mac 10.14 and 10.15. Original change's description: > New TextBreakIterator's default behavior breaks after space run > > Before this change, we were considering breaking opportunities before > space runs. This approach allowed us to avoid re-shaping in many cases, > which has an important advantage in terms of performance. > > However, the Unicode spec (UAX#14) state that breaking before a space > character is not allowed [1], so we had to implement this logic after > our TextBreakIterator had already determined the best breaking > opportunity. This approach has been working fine so far for regular > spaces (white-space, tabs, ...), but it doesn't work correctly for > other BA [2] class characters; in the CSS Text specification, these are > known as "other space separators" [3]. > > In order to implement the correct behavior for any kind of space, we > would need to change our TextBreakIterator implementation so that > matches the Unicode rules, considering breaking opportunity after > space runs. This change should also consider the performance impact > of the extra re-shaping operations required to deal with trailing > spaces. > > In order to prevent performance regressions, we'll store the position > of the 'end of non-hangable run', which will be used in case of items > with styles dictating rules to collapse trailing spaces. > > [1] https://unicode-org.atlassian.net/browse/ICU-20843 > [2] https://www.unicode.org/reports/tr14/tr14-39.html#BA > [3] https://drafts.csswg.org/css-text-3/#other-space-separators > > Change-Id: Ie4a3890c75a3faff1a0155d4a40bcaa85bc6ac06 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2047943 > Commit-Queue: Javier Fernandez <jfernandez@igalia.com> > Reviewed-by: Koji Ishii <kojii@chromium.org> > Cr-Commit-Position: refs/heads/master@{#806928} Change-Id: I9b5204f0b2e49367ab7d7a2107900763844fd2bb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2412307 Commit-Queue: Javier Fernandez <jfernandez@igalia.com> Reviewed-by:Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#807457}
Showing
This diff is collapsed.
52.7 KB
41.3 KB




