layout: Linebreak the entire InlineFormattingContext at once (#32483)

Instead of linebreaking inside each single-font text segment, linebreak
the entire inline formatting context at once. This has several benefits:

1. It allows us to use `icu_segmenter` (already in use from style),
   which is written against a newer version of the Unicode spec --
   preventing breaking emoji clusters.
2. Opens up the possibility of changing the way that linebreaking and
   shaping work -- eventually allowing shaping across inline box
   boundaries and line breaking *after* shaping.

Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
This commit is contained in:
Martin Robinson 2024-06-13 22:12:14 +02:00 committed by GitHub
parent 43a7dd5da0
commit bae9f6d844
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 356 additions and 220 deletions

View file

@ -0,0 +1,2 @@
[line-break-anywhere-overrides-uax-behavior-015.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-normal-015b.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-strict-015b.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-013.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-014.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-021.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-024.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-025.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-026.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-027.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-atomic-010.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-breaking-atomic-011.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-001-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-002-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-003-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-008-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-009-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-010-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-011-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-014-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-016-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-020-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-021-ref.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[shaping-022-ref.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-008.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-014.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-016.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-017.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-018.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-020.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-021.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-022.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-023.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-024.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[shaping-025.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-manual-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-break-normal-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-break-normal-003.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-break-normal-th-000.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-break-normal-th-001.html]
expected: FAIL