Title: [222576] trunk
Revision
222576
Author
[email protected]
Date
2017-09-27 14:02:46 -0700 (Wed, 27 Sep 2017)

Log Message

"Tag" codepoints require the complex text codepath
https://bugs.webkit.org/show_bug.cgi?id=177251
<rdar://problem/34384001>

Reviewed by David Hyatt.

Source/WebCore:

Previously, Tag codepoints (U+E0000 - U+E007F) weren't triggering the
complex text codepath.

Eventually, we should migrate the default from simple to complex. I'll do
that in a separate patch.

Test: fast/text/flag-codepoint.html

* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::characterRangeCodePath):

LayoutTests:

* fast/text/flag-codepoint-expected.html: Added.
* fast/text/flag-codepoint.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (222575 => 222576)


--- trunk/LayoutTests/ChangeLog	2017-09-27 20:54:17 UTC (rev 222575)
+++ trunk/LayoutTests/ChangeLog	2017-09-27 21:02:46 UTC (rev 222576)
@@ -1,3 +1,14 @@
+2017-09-27  Myles C. Maxfield  <[email protected]>
+
+        "Tag" codepoints require the complex text codepath
+        https://bugs.webkit.org/show_bug.cgi?id=177251
+        <rdar://problem/34384001>
+
+        Reviewed by David Hyatt.
+
+        * fast/text/flag-codepoint-expected.html: Added.
+        * fast/text/flag-codepoint.html: Added.
+
 2017-09-27  Alicia Boya García  <[email protected]>
 
         GTK test gardening.

Added: trunk/LayoutTests/fast/text/flag-codepoint-expected.html (0 => 222576)


--- trunk/LayoutTests/fast/text/flag-codepoint-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/flag-codepoint-expected.html	2017-09-27 21:02:46 UTC (rev 222576)
@@ -0,0 +1,8 @@
+<html>
+<head>
+<meta charset="utf-8">
+</head>
+<body>
+This test makes sure that combining grapheme clusters with Tag codepoints (U+E0000 - U+E007F) join correctly. The test passes if you don't see anything below.
+</body>
+</html>

Added: trunk/LayoutTests/fast/text/flag-codepoint.html (0 => 222576)


--- trunk/LayoutTests/fast/text/flag-codepoint.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/flag-codepoint.html	2017-09-27 21:02:46 UTC (rev 222576)
@@ -0,0 +1,16 @@
+<html>
+<head>
+<meta charset="utf-8">
+</head>
+<body>
+This test makes sure that combining grapheme clusters with Tag codepoints (U+E0000 - U+E007F) join correctly. The test passes if you don't see anything below.
+<div style="position: relative; font-size: 100px;">
+<div style="display: -webkit-box;">
+<div style="word-break: break-word;">
+🏴󠁧󠁢󠁥󠁮󠁧󠁿
+</div>
+</div>
+<div style="position: absolute; left: 0px; top: 0px; width: 750px; height: 120px; background: white;"></div>
+</div>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (222575 => 222576)


--- trunk/Source/WebCore/ChangeLog	2017-09-27 20:54:17 UTC (rev 222575)
+++ trunk/Source/WebCore/ChangeLog	2017-09-27 21:02:46 UTC (rev 222576)
@@ -1,3 +1,22 @@
+2017-09-27  Myles C. Maxfield  <[email protected]>
+
+        "Tag" codepoints require the complex text codepath
+        https://bugs.webkit.org/show_bug.cgi?id=177251
+        <rdar://problem/34384001>
+
+        Reviewed by David Hyatt.
+
+        Previously, Tag codepoints (U+E0000 - U+E007F) weren't triggering the
+        complex text codepath.
+
+        Eventually, we should migrate the default from simple to complex. I'll do
+        that in a separate patch.
+
+        Test: fast/text/flag-codepoint.html
+
+        * platform/graphics/FontCascade.cpp:
+        (WebCore::FontCascade::characterRangeCodePath):
+
 2017-09-27  David Hyatt  <[email protected]>
 
         Rename "FlowThread" to "FragmentedFlow"

Modified: trunk/Source/WebCore/platform/graphics/FontCascade.cpp (222575 => 222576)


--- trunk/Source/WebCore/platform/graphics/FontCascade.cpp	2017-09-27 20:54:17 UTC (rev 222575)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.cpp	2017-09-27 21:02:46 UTC (rev 222576)
@@ -815,6 +815,11 @@
                 previousCharacterIsEmojiGroupCandidate = true;
                 continue;
             }
+
+            if (supplementaryCharacter < 0xE0000)
+                continue;
+            if (supplementaryCharacter < 0xE0080) // Tags
+                return Complex;
             if (supplementaryCharacter < 0xE0100) // U+E0100 through U+E01EF Unicode variation selectors.
                 continue;
             if (supplementaryCharacter <= 0xE01EF)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to