Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e9f4202ae07bde1a81ca64b326da4ea3f6ff1724
https://github.com/WebKit/WebKit/commit/e9f4202ae07bde1a81ca64b326da4ea3f6ff1724
Author: Alan Baradlay <[email protected]>
Date: 2026-04-13 (Mon, 13 Apr 2026)
Changed paths:
A LayoutTests/fast/text/word-break-keep-all-punctuation-expected.txt
A LayoutTests/fast/text/word-break-keep-all-punctuation.html
M Source/WebCore/rendering/BreakablePositions.h
Log Message:
-----------
word-break: keep-all incorrectly suppresses break opportunities at CJK
punctuation
https://bugs.webkit.org/show_bug.cgi?id=312099
Reviewed by Antti Koivisto.
Per CSS Text 3, keep-all suppresses soft wrap opportunities between
typographic letter units only. It is "otherwise equivalent to normal",
meaning punctuation break opportunities should still work.
The KeepAll shortcut for 16-bit text used nextBreakableSpace() which
only finds spaces. CJK punctuation like U+3001 (ideographic comma)
was ignored.
The fix adds a PunctuationBreaks template parameter to
nextBreakableSpace. When enabled (KeepAll + 16-bit text), it also
breaks after punctuation characters using Unicode General Category.
* LayoutTests/fast/text/word-break-keep-all-punctuation-expected.txt: Added.
* LayoutTests/fast/text/word-break-keep-all-punctuation.html: Added.
* Source/WebCore/rendering/BreakablePositions.h:
(WebCore::BreakablePositions::next):
(WebCore::BreakablePositions::nextBreakableSpace):
Canonical link: https://commits.webkit.org/311090@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications