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

Reply via email to