Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f5c2130755ab39b4b005c196eabaa05406f586ea
https://github.com/WebKit/WebKit/commit/f5c2130755ab39b4b005c196eabaa05406f586ea
Author: Ryosuke Niwa <[email protected]>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M Source/WebCore/editing/TextIterator.cpp
M Source/WebCore/editing/TextIterator.h
M Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm
Log Message:
-----------
Some text fails to translate to Simplified Chinese on Apple TV+ page
https://bugs.webkit.org/show_bug.cgi?id=272214
<rdar://72939899>
Reviewed by Sihui Liu and Wenson Hsieh.
The bug is caused by ParagraphContentIterator::advanceIteratorNodeAndUpdateText
skipping a whitespace
generated for a tab character that appears at where a line wraps. When the
layout of the page changes
slightly so that this tab character appears in the middle of a line, we don't
skip the same whitespace.
As a result, TextManipulationController erroneously conclude that the content
has changed and reject
the translation.
Fixed the bug by tweaking TextIterator to generate a non-collapsed range in
this specific case so that
ParagraphContentIterator::advanceIteratorNodeAndUpdateText generates a
whitespace as expected.
We already had a code path for a space so reuse the same code path for other
collapsible whitespaces.
This PR also adds TextIterator::showTreeForThis and showTree(TextIterator&) /
showTree(TextIterator*)
to make debugging TextIterator easier.
Tests:
TextManipulation.CompleteTextManipulationDoesNotSkipTabCharacterAtLineWrap
* Source/WebCore/editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::showTreeForThis const): Added.
(showTree): Added.
* Source/WebCore/editing/TextIterator.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TextManipulation.CompleteTextManipulationDoesNotSkipTabCharacterAtLineWrap):
Canonical link: https://commits.webkit.org/277150@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes