Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3baa72dbb8d513476b27bcfae8d2dd02c6514541
      
https://github.com/WebKit/WebKit/commit/3baa72dbb8d513476b27bcfae8d2dd02c6514541
  Author: Fujii Hironori <hironori.fu...@sony.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    A LayoutTests/fast/text/control-characters/complex-1-expected.txt
    A LayoutTests/fast/text/control-characters/complex-1.html
    M Source/WebCore/platform/graphics/FontCascade.h
    M Source/WebCore/platform/graphics/WidthIterator.cpp

  Log Message:
  -----------
  ComplexTextController: Control characters should be rendered as visible glyphs
https://bugs.webkit.org/show_bug.cgi?id=271869

Reviewed by Vitor Roriz.

Control characters weren't rendered as visible glyphs in the complex
text code path in some condition.

The spec <https://www.w3.org/TR/css-text-3/#white-space-processing> says:

> Control characters (Unicode category Cc)—other than tabs (U+0009),
> line feeds (U+000A), carriage returns (U+000D) and sequences that form
> a segment break—must be rendered as a visible glyph

https://webkit.org/b/149128 fixed the simple text code path.
https://webkit.org/b/153941 fixed a part of the complex text code
path. We need one more fix.

ComplexTextController constructor is using
FontCascade::isCharacterWhoseGlyphsShouldBeDeletedForTextRendering to
determine a character is visible. It returned false for control
characters.

Changed isCharacterWhoseGlyphsShouldBeDeletedForTextRendering to
return false for control characters other than tabs, line feeds, and
carriage returns.

WidthIterator::applyCSSVisibilityRules is also using
isCharacterWhoseGlyphsShouldBeDeletedForTextRendering. Changed it to
keep the original behavior.

* LayoutTests/fast/text/control-characters/complex-1-expected.txt: Added.
* LayoutTests/fast/text/control-characters/complex-1.html: Added.
* Source/WebCore/platform/graphics/FontCascade.h:
(WebCore::FontCascade::isCharacterWhoseGlyphsShouldBeDeletedForTextRendering):
* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyCSSVisibilityRules):

Canonical link: https://commits.webkit.org/277574@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to