Title: [273539] trunk
Revision
273539
Author
[email protected]
Date
2021-02-25 19:45:48 -0800 (Thu, 25 Feb 2021)

Log Message

Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
https://bugs.webkit.org/show_bug.cgi?id=222438
<rdar://problem/74382039>

Reviewed by Zalan Bujtas.

Source/WebCore:

Just add UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A to the list.

We have to do some workarounds because not all versions of ICU include this value.
Luckily, these workarounds are compile-time-only, because we we're only using this value
to compare to a value produced by ICU (not a value we pass into ICU).

Test: fast/text/mending-heart.html

* platform/text/CharacterProperties.h:
(WebCore::isEmojiGroupCandidate):

LayoutTests:

* fast/text/mending-heart-expected.txt: Added.
* fast/text/mending-heart.html: Added.
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (273538 => 273539)


--- trunk/LayoutTests/ChangeLog	2021-02-26 03:40:15 UTC (rev 273538)
+++ trunk/LayoutTests/ChangeLog	2021-02-26 03:45:48 UTC (rev 273539)
@@ -1,3 +1,16 @@
+2021-02-25  Myles C. Maxfield  <[email protected]>
+
+        Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
+        https://bugs.webkit.org/show_bug.cgi?id=222438
+        <rdar://problem/74382039>
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/text/mending-heart-expected.txt: Added.
+        * fast/text/mending-heart.html: Added.
+        * platform/ios/TestExpectations:
+        * platform/mac/TestExpectations:
+
 2021-02-25  Saam Barati  <[email protected]>
 
         Add some exception checks to the bindings generator

Added: trunk/LayoutTests/fast/text/mending-heart-expected.txt (0 => 273539)


--- trunk/LayoutTests/fast/text/mending-heart-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/text/mending-heart-expected.txt	2021-02-26 03:45:48 UTC (rev 273539)
@@ -0,0 +1,5 @@
+PASS target.offsetWidth is <= 125
+PASS successfullyParsed is true
+
+TEST COMPLETE
+❤️‍🩹
Property changes on: trunk/LayoutTests/fast/text/mending-heart-expected.txt
___________________________________________________________________

Added: svn:eol-style

+native \ No newline at end of property

Added: svn:keywords

+Author Date Id Rev URL \ No newline at end of property

Added: trunk/LayoutTests/fast/text/mending-heart.html (0 => 273539)


--- trunk/LayoutTests/fast/text/mending-heart.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/mending-heart.html	2021-02-26 03:45:48 UTC (rev 273539)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src=""
+</head>
+<body>
+<span id="target" style="font-size: 100px;">❤️‍🩹</span>
+<script>
+var target = document.getElementById("target");
+shouldBeLessThanOrEqual("target.offsetWidth", "125");
+</script>
+</div>
+</body>
+</html>

Modified: trunk/LayoutTests/platform/ios/TestExpectations (273538 => 273539)


--- trunk/LayoutTests/platform/ios/TestExpectations	2021-02-26 03:40:15 UTC (rev 273538)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2021-02-26 03:45:48 UTC (rev 273539)
@@ -3507,3 +3507,6 @@
 
 webkit.org/b/221466 imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys.html [ Skip ]
 webkit.org/b/221465 imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-combinations.html [ Skip ]
+
+# Not all OSes support the same set of emoji.
+fast/text/mending-heart.html [ Failure ] 

Modified: trunk/LayoutTests/platform/mac/TestExpectations (273538 => 273539)


--- trunk/LayoutTests/platform/mac/TestExpectations	2021-02-26 03:40:15 UTC (rev 273538)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2021-02-26 03:45:48 UTC (rev 273539)
@@ -2293,4 +2293,7 @@
 
 webkit.org/b/222195 inspector/animation/lifecycle-css-transition.html [ Pass Timeout ]
 
-webkit.org/b/222422 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Pass Failure Slow ]
\ No newline at end of file
+webkit.org/b/222422 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Pass Failure Slow ]
+
+# Not all OSes support the same set of emoji.
+[ Mojave Catalina ] fast/text/mending-heart.html [ Failure ] 

Modified: trunk/Source/WebCore/ChangeLog (273538 => 273539)


--- trunk/Source/WebCore/ChangeLog	2021-02-26 03:40:15 UTC (rev 273538)
+++ trunk/Source/WebCore/ChangeLog	2021-02-26 03:45:48 UTC (rev 273539)
@@ -1,3 +1,22 @@
+2021-02-25  Myles C. Maxfield  <[email protected]>
+
+        Emoji sequences with constituents in the UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A Unicode block don't get combined properly
+        https://bugs.webkit.org/show_bug.cgi?id=222438
+        <rdar://problem/74382039>
+
+        Reviewed by Zalan Bujtas.
+
+        Just add UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A to the list.
+
+        We have to do some workarounds because not all versions of ICU include this value.
+        Luckily, these workarounds are compile-time-only, because we we're only using this value
+        to compare to a value produced by ICU (not a value we pass into ICU).
+
+        Test: fast/text/mending-heart.html
+
+        * platform/text/CharacterProperties.h:
+        (WebCore::isEmojiGroupCandidate):
+
 2021-02-25  Saam Barati  <[email protected]>
 
         Add some exception checks to the bindings generator

Modified: trunk/Source/WebCore/platform/text/CharacterProperties.h (273538 => 273539)


--- trunk/Source/WebCore/platform/text/CharacterProperties.h	2021-02-26 03:40:15 UTC (rev 273538)
+++ trunk/Source/WebCore/platform/text/CharacterProperties.h	2021-02-26 03:45:48 UTC (rev 273539)
@@ -31,7 +31,14 @@
 
 static inline bool isEmojiGroupCandidate(UChar32 character)
 {
-    switch (ublock_getCode(character)) {
+#define SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A 298
+#if U_ICU_VERSION_MAJOR_NUM < 64
+#define UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A
+#else
+static_assert(UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A == SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A);
+#endif
+
+    switch (static_cast<int>(ublock_getCode(character))) {
     case UBLOCK_MISCELLANEOUS_SYMBOLS:
     case UBLOCK_DINGBATS:
     case UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS:
@@ -38,6 +45,7 @@
     case UBLOCK_EMOTICONS:
     case UBLOCK_TRANSPORT_AND_MAP_SYMBOLS:
     case UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS:
+    case UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A:
         return true;
     default:
         return false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to