Diff
Modified: branches/safari-600.1.4.15-branch/LayoutTests/ChangeLog (180727 => 180728)
--- branches/safari-600.1.4.15-branch/LayoutTests/ChangeLog 2015-02-27 06:06:46 UTC (rev 180727)
+++ branches/safari-600.1.4.15-branch/LayoutTests/ChangeLog 2015-02-27 06:44:30 UTC (rev 180728)
@@ -1,3 +1,20 @@
+2015-02-26 Babak Shafiei <bshaf...@apple.com>
+
+ Merged r180087.
+
+ 2015-02-12 Enrica Casucci <enr...@apple.com>
+
+ Additional emoji group support.
+ https://bugs.webkit.org/show_bug.cgi?id=141539
+ rdar://problem/19727527
+
+ Reviewed by Sam Weinig.
+
+ Updating test to reflect the new emoji ligatures supported.
+
+ * editing/deleting/delete-emoji-expected.txt:
+ * editing/deleting/delete-emoji.html:
+
2015-02-26 Lucas Forschler <lforsch...@apple.com>
Merge r180174
Modified: branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji-expected.txt (180727 => 180728)
--- branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji-expected.txt 2015-02-27 06:06:46 UTC (rev 180727)
+++ branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji-expected.txt 2015-02-27 06:44:30 UTC (rev 180728)
@@ -1,17 +1,29 @@
This test verifies that emoji groups and emoji with variations are deleted correctly
Dump of markup 1:
-| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦<#selection-caret>
+| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦π©ββ€οΈβπ©π¨ββ€οΈβπ¨π©ββ€οΈβπβπ©π¨ββ€οΈβπβπ¨<#selection-caret>
"
Dump of markup 2:
+| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦π©ββ€οΈβπ©π¨ββ€οΈβπ¨π©ββ€οΈβπβπ©<#selection-caret>"
+
+Dump of markup 3:
+| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦π©ββ€οΈβπ©π¨ββ€οΈβπ¨<#selection-caret>"
+
+Dump of markup 4:
+| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦π©ββ€οΈβπ©<#selection-caret>"
+
+Dump of markup 5:
+| "π¦π»π¦πΎπ»π¦πΎπ¦π©βπ©βπ¦<#selection-caret>"
+
+Dump of markup 6:
| "π¦π»π¦πΎπ»π¦πΎπ¦<#selection-caret>"
-Dump of markup 3:
+Dump of markup 7:
| "π¦π»π¦πΎπ»π¦πΎ<#selection-caret>"
-Dump of markup 4:
+Dump of markup 8:
| "π¦π»π¦πΎπ»<#selection-caret>"
-Dump of markup 5:
+Dump of markup 9:
| "π¦π»π¦πΎ<#selection-caret>"
Modified: branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji.html (180727 => 180728)
--- branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji.html 2015-02-27 06:06:46 UTC (rev 180727)
+++ branches/safari-600.1.4.15-branch/LayoutTests/editing/deleting/delete-emoji.html 2015-02-27 06:44:30 UTC (rev 180728)
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<body>
-<div id="test" contenteditable="true">👦🏻👦🏾🏻👦🏾👦👩‍👩‍👦
+<div id="test" contenteditable="true">👦🏻👦🏾🏻👦🏾👦👩‍👩‍👦👩‍❤️‍👩👨‍❤️‍👨👩‍❤️‍💋‍👩👨‍❤️‍💋‍👨
</div>
<script src=""
<script>
@@ -9,7 +9,7 @@
var selection = window.getSelection();
var testElement = document.getElementById('test');
-selection.setBaseAndExtent(testElement.firstChild, 20, testElement.firstChild, 20);
+selection.setBaseAndExtent(testElement.firstChild, 56, testElement.firstChild, 56);
Markup.dump("test");
document.execCommand("Delete");
Markup.dump("test");
@@ -19,6 +19,14 @@
Markup.dump("test");
document.execCommand("Delete");
Markup.dump("test");
+document.execCommand("Delete");
+Markup.dump("test");
+document.execCommand("Delete");
+Markup.dump("test");
+document.execCommand("Delete");
+Markup.dump("test");
+document.execCommand("Delete");
+Markup.dump("test");
</script>
</body>
</html>
Modified: branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog (180727 => 180728)
--- branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog 2015-02-27 06:06:46 UTC (rev 180727)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog 2015-02-27 06:44:30 UTC (rev 180728)
@@ -1,3 +1,23 @@
+2015-02-26 Babak Shafiei <bshaf...@apple.com>
+
+ Merged r180087.
+
+ 2015-02-12 Enrica Casucci <enr...@apple.com>
+
+ Additional emoji group support.
+ https://bugs.webkit.org/show_bug.cgi?id=141539
+ rdar://problem/19727527
+
+ Reviewed by Sam Weinig.
+
+ Adding some new emoji ligatures.
+ Updated existing test to include the new sequences.
+
+ * platform/text/TextBreakIterator.cpp:
+ (WebCore::cursorMovementIterator):
+ * rendering/RenderText.cpp:
+ (WebCore::isEmojiGroupCandidate):
+
2015-02-26 Lucas Forschler <lforsch...@apple.com>
Merge r180174
Modified: branches/safari-600.1.4.15-branch/Source/WebCore/platform/text/TextBreakIterator.cpp (180727 => 180728)
--- branches/safari-600.1.4.15-branch/Source/WebCore/platform/text/TextBreakIterator.cpp 2015-02-27 06:06:46 UTC (rev 180727)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/platform/text/TextBreakIterator.cpp 2015-02-27 06:44:30 UTC (rev 180728)
@@ -208,8 +208,9 @@
"$Mal1 = [\\u0D15-\\u0D39];" // Malayalam Letter A,...,Ha
"$RI = [\\U0001F1E6-\\U0001F1FF];" // Emoji regional indicators
"$ZWJ = \\u200D;" // Zero width joiner
- "$EmojiForModsAndSeqs = [\\U0001F466-\\U0001F469];" // Emoji that take Fitzpatrick modifiers AND participate in ZWJ sequences
- "$EmojiForModsOnly = [\\u261D \\u270A-\\u270C \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6B4-\\U0001F6B6 \\U0001F6C0];" // Emoji that take Fitzpatrick modifiers
+ "$EmojiVar = [\\uFE0F];" // Emoji-style variation selector
+ "$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 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6B4-\\U0001F6B6 \\U0001F6C0];" // Emoji that take Fitzpatrick modifiers
"$EmojiMods = [\\U0001F3FB-\\U0001F3FF];" // Fitzpatrick modifiers
"!!chain;"
"!!forward;"
@@ -229,8 +230,8 @@
"$Tel0 $TelV $Tel1;" // Telugu Virama (forward)
"$Kan0 $KanV $Kan1;" // Kannada Virama (forward)
"$Mal0 $MalV $Mal1;" // Malayalam Virama (forward)
- "$ZWJ $EmojiForModsAndSeqs;" // Don't break in emoji ZWJ sequences
- "[$EmojiForModsAndSeqs $EmojiForModsOnly] $EmojiMods;" // Don't break between relevant emoji and Fitzpatrick modifier
+ "$ZWJ $EmojiForSeqs;" // Don't break in emoji ZWJ sequences
+ "$EmojiForMods $EmojiVar? $EmojiMods;" // Don't break between relevant emoji (possibly with variation selector) and Fitzpatrick modifier
"!!reverse;"
"$LF $CR;"
"($L | $V | $LV | $LVT) $L;"
@@ -248,8 +249,10 @@
"$Tel1 $TelV $Tel0;" // Telugu Virama (backward)
"$Kan1 $KanV $Kan0;" // Kannada Virama (backward)
"$Mal1 $MalV $Mal0;" // Malayalam Virama (backward)
- "$EmojiForModsAndSeqs $ZWJ;" // Don't break in emoji ZWJ sequences
- "$EmojiMods [$EmojiForModsAndSeqs $EmojiForModsOnly];" // Don't break between relevant emoji and Fitzpatrick modifier
+ "$EmojiForSeqs $ZWJ;" // Don't break in emoji ZWJ sequences
+ "$EmojiMods $EmojiVar? $EmojiForMods;" // Don't break between relevant emoji (possibly with variation selector) and Fitzpatrick modifier
+ "[$EmojiVar $EmojiMods]+ $EmojiForMods;"
+ "$EmojiForMods [$EmojiVar $EmojiMods]+;"
"!!safe_reverse;"
"!!safe_forward;";
static TextBreakIterator* staticCursorMovementIterator = initializeIteratorWithRules(kRules);
@@ -406,8 +409,9 @@
"$XX = [:LineBreak = Unknown:];"
"$ZW = [:LineBreak = ZWSpace:];"
"$ZWJ = \\u200D;"
- "$EmojiForModsAndSeqs = [\\U0001F466-\\U0001F469];"
- "$EmojiForModsOnly = [\\u261D \\u270A-\\u270C \\U0001F385 \\U0001F3C3-\\U0001F3C4 \\U0001F3C7 \\U0001F3CA \\U0001F442-\\U0001F443 \\U0001F446-\\U0001F450 \\U0001F46E-\\U0001F478 \\U0001F47C \\U0001F481-\\U0001F483 \\U0001F485-\\U0001F487 \\U0001F4AA \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6B4-\\U0001F6B6 \\U0001F6C0];"
+ "$EmojiVar = \\uFE0F;"
+ "$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 \\U0001F645-\\U0001F647 \\U0001F64B-\\U0001F64F \\U0001F6B4-\\U0001F6B6 \\U0001F6C0];"
"$EmojiMods = [\\U0001F3FB-\\U0001F3FF];"
"$dictionary = [:LineBreak = Complex_Context:];"
"$ALPlus = [$AL $AI $SA $SG $XX];"
@@ -485,7 +489,7 @@
"$LB4NonBreaks [$SP $ZW];"
"$CAN_CM $CM* [$SP $ZW];"
"$CM+ [$SP $ZW];"
- "[$EmojiForModsAndSeqs $EmojiMods] $ZWJ $EmojiForModsAndSeqs;"
+ "$EmojiForSeqs $EmojiVar? $EmojiMods? $ZWJ $EmojiForSeqs;"
"$CAN_CM $CM+;"
"$CM+;"
"$CAN_CM $CM* $WJcm;"
@@ -553,7 +557,7 @@
"($ALcm | $HLcm | $NUcm) $OPcm;"
"$CM+ $OPcm;"
"$CPcm ($ALcm | $HLcm | $NUcm);"
- "[$EmojiForModsAndSeqs $EmojiForModsOnly] $EmojiMods;";
+ "$EmojiForMods $EmojiVar? $EmojiMods;";
static const char* uax14Reverse =
"!!reverse;"
@@ -591,7 +595,7 @@
"$LF $CR;"
"[$SP $ZW] [$LB4NonBreaks-$CM];"
"[$SP $ZW] $CM+ $CAN_CM;"
- "$EmojiForModsAndSeqs $ZWJ [$EmojiForModsAndSeqs $EmojiMods];"
+ "$EmojiForSeqs $ZWJ $EmojiMods? $EmojiVar? $EmojiForSeqs;"
"$CM+ $CAN_CM;"
"$CM* $WJ $CM* $CAN_CM;"
"$CM* $WJ [$LB8NonBreaks-$CM];"
@@ -649,7 +653,7 @@
"$CM* ($ALPlus | $HL) $CM* $IS;"
"$CM* $OP $CM* ($ALPlus | $HL | $NU);"
"$CM* ($ALPlus | $HL | $NU) $CM* $CP;"
- "$EmojiMods [$EmojiForModsAndSeqs $EmojiForModsOnly];";
+ "$EmojiMods $EmojiVar? $EmojiForMods;";
static const char* uax14SafeForward =
"!!safe_forward;"