Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 85696a6b3a7ba449d1da02ac2f275a3f31582d0e
      
https://github.com/WebKit/WebKit/commit/85696a6b3a7ba449d1da02ac2f275a3f31582d0e
  Author: Fujii Hironori <hironori.fu...@sony.com>
  Date:   2024-03-28 (Thu, 28 Mar 2024)

  Changed paths:
    A LayoutTests/fast/text/unpaired-surrogate-complex-expected.txt
    A LayoutTests/fast/text/unpaired-surrogate-complex.html
    R LayoutTests/fast/text/unpaired-surrogate-expected-mismatch.html
    A LayoutTests/fast/text/unpaired-surrogate-expected.txt
    M LayoutTests/fast/text/unpaired-surrogate.html
    M LayoutTests/platform/wincairo/TestExpectations
    M Source/WebCore/platform/graphics/ComplexTextController.cpp
    M Source/WebCore/platform/graphics/ComplexTextController.h

  Log Message:
  -----------
  ComplexTextController: Handle unpaired surrogates
https://bugs.webkit.org/show_bug.cgi?id=271691

Reviewed by Vitor Roriz.

Unpaired surrogates displayed nothing in the complex text code path.
https://commits.webkit.org/241073@main made the simple text code path
handle unpaired surrogates to display white squares. Chrome and
Firefox display a question mark or a hex code glyph for it.

241073@main added a test case fast/text/unpaired-surrogate.html. Cocoa
ports takes the simple text code path for it, but GTK and Windows
ports take the complex text code path. The test case is a mismatch
test case, but falsely passed for GTK and Windows ports. They rendered
nothing for the test, and unexpectedly passed the test.

If I add text-rendering:optimizeSpeed to the test, GTK and Windows
ports also take the simple text code path and display a white square
glyph for the unpaired surrogate.

If I use a Devanagari letter in the test, Cocoa port also takes the
complex text code path and exhibits the same problem.

ComplexTextController just ignored unpaired surrogates. It shouldn't
ignore.

Converted the mismatch test case to a JS test. And, added
text-rendering:optimizeSpeed to take the simple text code path. Added
a new test case with a complex text to test the complex text code
path.

* LayoutTests/fast/text/unpaired-surrogate-complex-expected.txt: Added.
* LayoutTests/fast/text/unpaired-surrogate-complex.html: Added.
* LayoutTests/fast/text/unpaired-surrogate-expected-mismatch.html: Removed.
* LayoutTests/fast/text/unpaired-surrogate-expected.txt: Added.
* LayoutTests/fast/text/unpaired-surrogate.html:
* LayoutTests/platform/wincairo/TestExpectations:
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::advanceByCombiningCharacterSequence):
(WebCore::ComplexTextController::collectComplexTextRuns):
* Source/WebCore/platform/graphics/ComplexTextController.h:

Canonical link: https://commits.webkit.org/276797@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