Title: [189167] trunk
Revision
189167
Author
[email protected]
Date
2015-08-31 08:37:51 -0700 (Mon, 31 Aug 2015)

Log Message

Incorrect cursor movement for U+26F9, U+1F3CB with variations.
https://bugs.webkit.org/show_bug.cgi?id=148629
rdar://problem/22492366

Reviewed by Ryosuke Niwa.

Source/WebCore:

Updating text break iterator rules to correctly handle those two emoji with variations.

* platform/text/TextBreakIterator.cpp:
(WebCore::cursorMovementIterator):

LayoutTests:

The test has been updated to test these two emoji and to
cover the cursor movement as well.

* editing/deleting/delete-emoji-expected.txt:
* editing/deleting/delete-emoji.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (189166 => 189167)


--- trunk/LayoutTests/ChangeLog	2015-08-31 10:54:07 UTC (rev 189166)
+++ trunk/LayoutTests/ChangeLog	2015-08-31 15:37:51 UTC (rev 189167)
@@ -1,3 +1,17 @@
+2015-08-31  Enrica Casucci  <[email protected]>
+
+        Incorrect cursor movement for U+26F9, U+1F3CB with variations.
+        https://bugs.webkit.org/show_bug.cgi?id=148629
+        rdar://problem/22492366
+
+        Reviewed by Ryosuke Niwa.
+
+        The test has been updated to test these two emoji and to
+        cover the cursor movement as well.
+
+        * editing/deleting/delete-emoji-expected.txt:
+        * editing/deleting/delete-emoji.html:
+
 2015-07-31  Sergio Villar Senin  <[email protected]>
 
         [css-grid] Grid containers reporting wrong preferred widths

Modified: trunk/LayoutTests/editing/deleting/delete-emoji-expected.txt (189166 => 189167)


--- trunk/LayoutTests/editing/deleting/delete-emoji-expected.txt	2015-08-31 10:54:07 UTC (rev 189166)
+++ trunk/LayoutTests/editing/deleting/delete-emoji-expected.txt	2015-08-31 15:37:51 UTC (rev 189167)
@@ -1,65 +1,59 @@
-This test verifies that emoji groups and emoji with variations are deleted correctly
+This test verifies that deletions are correct over emoji groups and emoji with variations
 
 Dump of markup 1:
-| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ•΅πŸΎπŸ•΄πŸΎπŸ‹πŸΎπŸ‘β€πŸ—¨<#selection-caret>
+| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ‘β€πŸ—¨πŸ‹πŸΎ<#selection-caret>
 "
 
 Dump of markup 2:
-| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ•΅πŸΎπŸ•΄πŸΎπŸ‹πŸΎ<#selection-caret>"
+| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ‘β€πŸ—¨<#selection-caret>"
 
 Dump of markup 3:
-| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ•΅πŸΎπŸ•΄πŸΎ<#selection-caret>"
-
-Dump of markup 4:
-| "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎπŸ•΅πŸΎ<#selection-caret>"
-
-Dump of markup 5:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎπŸ€˜πŸΎ<#selection-caret>"
 
-Dump of markup 6:
+Dump of markup 4:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎπŸ–•πŸΎ<#selection-caret>"
 
-Dump of markup 7:
+Dump of markup 5:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎπŸ–πŸΎ<#selection-caret>"
 
-Dump of markup 8:
+Dump of markup 6:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎβ›ΉπŸΎ<#selection-caret>"
 
-Dump of markup 9:
+Dump of markup 7:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»βœπŸΎ<#selection-caret>"
 
-Dump of markup 10:
+Dump of markup 8:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨β˜οΈπŸ»<#selection-caret>"
 
-Dump of markup 11:
+Dump of markup 9:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨<#selection-caret>"
 
-Dump of markup 12:
+Dump of markup 10:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘©<#selection-caret>"
 
-Dump of markup 13:
+Dump of markup 11:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©πŸ‘¨β€β€οΈβ€πŸ‘¨<#selection-caret>"
 
-Dump of markup 14:
+Dump of markup 12:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦πŸ‘©β€β€οΈβ€πŸ‘©<#selection-caret>"
 
-Dump of markup 15:
+Dump of markup 13:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦πŸ‘©β€πŸ‘©β€πŸ‘¦<#selection-caret>"
 
-Dump of markup 16:
+Dump of markup 14:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎπŸ‘¦<#selection-caret>"
 
-Dump of markup 17:
+Dump of markup 15:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»πŸ‘¦πŸΎ<#selection-caret>"
 
-Dump of markup 18:
+Dump of markup 16:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎπŸ»<#selection-caret>"
 
-Dump of markup 19:
+Dump of markup 17:
 | "πŸ‘¦πŸ»πŸ‘¦πŸΎ<#selection-caret>"
 
-Dump of markup 20:
+Dump of markup 18:
 | "πŸ‘¦πŸ»<#selection-caret>"
 
-Dump of markup 21:
+Dump of markup 19:
 | <br>

Modified: trunk/LayoutTests/editing/deleting/delete-emoji.html (189166 => 189167)


--- trunk/LayoutTests/editing/deleting/delete-emoji.html	2015-08-31 10:54:07 UTC (rev 189166)
+++ trunk/LayoutTests/editing/deleting/delete-emoji.html	2015-08-31 15:37:51 UTC (rev 189167)
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <html>
 <body>
-<div id="test" contenteditable="true">&#x1F466;&#x1F3FB;&#x1F466;&#x1F3FE;&#x1F3FB;&#x1F466;&#x1F3FE;&#x1F466;&#x1F469;&#x200D;&#x1F469;&#x200D;&#x1F466;&#x1F469;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F469;&#x1F468;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F468;&#x1F469;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F48B;&#x200D;&#x1F469;&#x1F468;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F48B;&#x200D;&#x1F468;&#x261D;&#xFE0F;&#x1F3FB;&#x270D;&#x1F3FE;&#x26F9;&#x1F3FE;&#x1F590;&#x1F3FE;&#x1F595;&#x1F3FE;&#x1F918;&#x1F3FE;&#x1F575;&#x1F3FE;&#x1F574;&#x1F3FE;&#x1F3CB;&#x1F3FE;&#x1F441;&#x200D;&#x1F5E8;
+<div id="test" contenteditable="true">&#x1F466;&#x1F3FB;&#x1F466;&#x1F3FE;&#x1F3FB;&#x1F466;&#x1F3FE;&#x1F466;&#x1F469;&#x200D;&#x1F469;&#x200D;&#x1F466;&#x1F469;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F469;&#x1F468;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F468;&#x1F469;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F48B;&#x200D;&#x1F469;&#x1F468;&#x200D;&#x2764;&#xFE0F;&#x200D;&#x1F48B;&#x200D;&#x1F468;&#x261D;&#xFE0F;&#x1F3FB;&#x270D;&#x1F3FE;&#x26F9;&#x1F3FE;&#x1F590;&#x1F3FE;&#x1F595;&#x1F3FE;&#x1F918;&#x1F3FE;&#x1F441;&#x200D;&#x1F5E8;&#x1F3CB;&#x1F3FE;
 </div>
 <script src=""
 <script>
-Markup.description("This test verifies that emoji groups and emoji with variations are deleted correctly");
+Markup.description("This test verifies that deletions are correct over emoji groups and emoji with variations");
 var testElement = document.getElementById('test');
 getSelection().setBaseAndExtent(testElement.firstChild, testElement.firstChild.length, testElement.firstChild, testElement.firstChild.length);
 Markup.dump("test");
@@ -13,6 +13,7 @@
     document.execCommand("Delete");
     Markup.dump("test");
 }
+
 </script>
 </body>
 </html>

Modified: trunk/Source/WebCore/ChangeLog (189166 => 189167)


--- trunk/Source/WebCore/ChangeLog	2015-08-31 10:54:07 UTC (rev 189166)
+++ trunk/Source/WebCore/ChangeLog	2015-08-31 15:37:51 UTC (rev 189167)
@@ -1,3 +1,16 @@
+2015-08-31  Enrica Casucci  <[email protected]>
+
+        Incorrect cursor movement for U+26F9, U+1F3CB with variations.
+        https://bugs.webkit.org/show_bug.cgi?id=148629
+        rdar://problem/22492366
+
+        Reviewed by Ryosuke Niwa.
+
+        Updating text break iterator rules to correctly handle those two emoji with variations.
+
+        * platform/text/TextBreakIterator.cpp:
+        (WebCore::cursorMovementIterator):
+
 2015-07-31  Sergio Villar Senin  <[email protected]>
 
         [css-grid] Grid containers reporting wrong preferred widths

Modified: trunk/Source/WebCore/platform/text/TextBreakIterator.cpp (189166 => 189167)


--- trunk/Source/WebCore/platform/text/TextBreakIterator.cpp	2015-08-31 10:54:07 UTC (rev 189166)
+++ trunk/Source/WebCore/platform/text/TextBreakIterator.cpp	2015-08-31 15:37:51 UTC (rev 189167)
@@ -214,7 +214,7 @@
         "$EmojiVar = [\\uFE0F];"            // Emoji-style variation selector
 #if ADDITIONAL_EMOJI_SUPPORT
         "$EmojiForSeqs = [\\u2764 \\U0001F441 \\U0001F466-\\U0001F469 \\U0001F48B \\U0001F5E8];" // Emoji that participate in ZWJ sequences
-        "$EmojiForMods = [\\u261D \\u270A-\\u270D \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F590 \\U0001F595 \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0 \\U0001F918] ;" // Emoji that take Fitzpatrick modifiers
+        "$EmojiForMods = [\\u261D \\u26F9 \\u270A-\\u270D \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F3CB \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F590 \\U0001F595 \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0 \\U0001F918] ;" // Emoji that take Fitzpatrick modifiers
 #else
         "$EmojiForSeqs = [\\u2764 \\U0001F466-\\U0001F469 \\U0001F48B];" // Emoji that participate in ZWJ sequences
         "$EmojiForMods = [\\u261D \\u270A-\\u270C \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0] ;" // Emoji that take Fitzpatrick modifiers
@@ -447,7 +447,7 @@
     "$EmojiVar = \\uFE0F;"
 #if ADDITIONAL_EMOJI_SUPPORT
     "$EmojiForSeqs = [\\u2764 \\U0001F441 \\U0001F466-\\U0001F469 \\U0001F48B \\U0001F5E8];"
-    "$EmojiForMods = [\\u261D \\u270A-\\u270D \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F590 \\U0001F595 \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0 \\U0001F918] ;" // Emoji that take Fitzpatrick modifiers
+    "$EmojiForMods = [\\u261D \\u26F9 \\u270A-\\u270D \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F3CB \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F590 \\U0001F595 \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0 \\U0001F918] ;" // Emoji that take Fitzpatrick modifiers
 #else
     "$EmojiForSeqs = [\\u2764 \\U0001F466-\\U0001F469 \\U0001F48B];"
     "$EmojiForMods = [\\u261D \\u270A-\\u270C \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F466-\\U0001F469 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F596 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6A3 \\U0001F6B4-\\U0001F6B6 \\U0001F6C0] ;" // Emoji that take Fitzpatrick modifiers
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to