Title: [271822] branches/safari-611-branch
Revision
271822
Author
alanc...@apple.com
Date
2021-01-25 14:11:02 -0800 (Mon, 25 Jan 2021)

Log Message

Cherry-pick r271425. rdar://problem/73469655

    Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
    https://bugs.webkit.org/show_bug.cgi?id=220536
    <rdar://problem/70633887>

    Reviewed by Zalan Bujtas.

    Source/WebCore:

    We have two codeblocks in this section that are meant to be used
    for non-CJK text, but the compound "if" statement was causing us to hit
    one of them even for CJK text.

    Test: fast/text/cjk-multi-codepoint-cluster-vertical.html

    * platform/graphics/coretext/FontCascadeCoreText.cpp:
    (WebCore::FontCascade::fontForCombiningCharacterSequence const):

    LayoutTests:

    * fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
    * fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
    * platform/win/TestExpectations:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271425 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Added Paths

Diff

Modified: branches/safari-611-branch/LayoutTests/ChangeLog (271821 => 271822)


--- branches/safari-611-branch/LayoutTests/ChangeLog	2021-01-25 22:10:57 UTC (rev 271821)
+++ branches/safari-611-branch/LayoutTests/ChangeLog	2021-01-25 22:11:02 UTC (rev 271822)
@@ -1,5 +1,46 @@
 2021-01-25  Alan Coon  <alanc...@apple.com>
 
+        Cherry-pick r271425. rdar://problem/73469655
+
+    Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
+    https://bugs.webkit.org/show_bug.cgi?id=220536
+    <rdar://problem/70633887>
+    
+    Reviewed by Zalan Bujtas.
+    
+    Source/WebCore:
+    
+    We have two codeblocks in this section that are meant to be used
+    for non-CJK text, but the compound "if" statement was causing us to hit
+    one of them even for CJK text.
+    
+    Test: fast/text/cjk-multi-codepoint-cluster-vertical.html
+    
+    * platform/graphics/coretext/FontCascadeCoreText.cpp:
+    (WebCore::FontCascade::fontForCombiningCharacterSequence const):
+    
+    LayoutTests:
+    
+    * fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
+    * fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
+    * platform/win/TestExpectations:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-01-12  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+            Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
+            https://bugs.webkit.org/show_bug.cgi?id=220536
+            <rdar://problem/70633887>
+
+            Reviewed by Zalan Bujtas.
+
+            * fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
+            * fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
+            * platform/win/TestExpectations:
+
+2021-01-25  Alan Coon  <alanc...@apple.com>
+
         Cherry-pick r271419. rdar://problem/73469613
 
     Make fast/text/international/complex-character-based-fallback.html more robust by migrating it to be a reftest instead of a DRT test

Added: branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical-expected.html (0 => 271822)


--- branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical-expected.html	                        (rev 0)
+++ branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical-expected.html	2021-01-25 22:11:02 UTC (rev 271822)
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that a CJK multi-codepoint grapheme cluster is oriented correctly (upright) in vertical writing mode. The test passes if the character below looks like &#x30d5;&#x309a;.
+<div style="font: 100px 'HiraMinPro-W3'; line-height: 1;">&#x30d5;&#x309a;</div>
+</body>
+</html>

Added: branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical.html (0 => 271822)


--- branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical.html	                        (rev 0)
+++ branches/safari-611-branch/LayoutTests/fast/text/cjk-multi-codepoint-cluster-vertical.html	2021-01-25 22:11:02 UTC (rev 271822)
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that a CJK multi-codepoint grapheme cluster is oriented correctly (upright) in vertical writing mode. The test passes if the character below looks like &#x30d5;&#x309a;.
+<div style="font: 100px 'HiraMinPro-W3'; writing-mode: vertical-rl; line-height: 1;">&#x30d5;&#x309a;</div>
+</body>
+</html>

Modified: branches/safari-611-branch/LayoutTests/platform/win/TestExpectations (271821 => 271822)


--- branches/safari-611-branch/LayoutTests/platform/win/TestExpectations	2021-01-25 22:10:57 UTC (rev 271821)
+++ branches/safari-611-branch/LayoutTests/platform/win/TestExpectations	2021-01-25 22:11:02 UTC (rev 271822)
@@ -4610,3 +4610,5 @@
 js/dom/webassembly-memory-normal-fail.html [ Skip ]
 js/dom/webassembly-memory-shared-fail.html [ Skip ]
 storage/indexeddb/shared-memory-structured-clone.html [ Skip ]
+
+webkit.org/b/220536 fast/text/cjk-multi-codepoint-cluster-vertical.html [ ImageOnlyFailure ]

Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (271821 => 271822)


--- branches/safari-611-branch/Source/WebCore/ChangeLog	2021-01-25 22:10:57 UTC (rev 271821)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog	2021-01-25 22:11:02 UTC (rev 271822)
@@ -1,5 +1,51 @@
 2021-01-25  Alan Coon  <alanc...@apple.com>
 
+        Cherry-pick r271425. rdar://problem/73469655
+
+    Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
+    https://bugs.webkit.org/show_bug.cgi?id=220536
+    <rdar://problem/70633887>
+    
+    Reviewed by Zalan Bujtas.
+    
+    Source/WebCore:
+    
+    We have two codeblocks in this section that are meant to be used
+    for non-CJK text, but the compound "if" statement was causing us to hit
+    one of them even for CJK text.
+    
+    Test: fast/text/cjk-multi-codepoint-cluster-vertical.html
+    
+    * platform/graphics/coretext/FontCascadeCoreText.cpp:
+    (WebCore::FontCascade::fontForCombiningCharacterSequence const):
+    
+    LayoutTests:
+    
+    * fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
+    * fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
+    * platform/win/TestExpectations:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-01-12  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+            Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
+            https://bugs.webkit.org/show_bug.cgi?id=220536
+            <rdar://problem/70633887>
+
+            Reviewed by Zalan Bujtas.
+
+            We have two codeblocks in this section that are meant to be used
+            for non-CJK text, but the compound "if" statement was causing us to hit
+            one of them even for CJK text.
+
+            Test: fast/text/cjk-multi-codepoint-cluster-vertical.html
+
+            * platform/graphics/coretext/FontCascadeCoreText.cpp:
+            (WebCore::FontCascade::fontForCombiningCharacterSequence const):
+
+2021-01-25  Alan Coon  <alanc...@apple.com>
+
         Cherry-pick r271405. rdar://problem/73466993
 
     [Cocoa] Support key rotation with HLS-backed encrypted media streams

Modified: branches/safari-611-branch/Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp (271821 => 271822)


--- branches/safari-611-branch/Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp	2021-01-25 22:10:57 UTC (rev 271821)
+++ branches/safari-611-branch/Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp	2021-01-25 22:11:02 UTC (rev 271822)
@@ -322,9 +322,10 @@
             continue;
 #endif
         if (font->platformData().orientation() == FontOrientation::Vertical) {
-            if (isCJKIdeographOrSymbol(baseCharacter) && !font->hasVerticalGlyphs())
-                font = &font->brokenIdeographFont();
-            else if (m_fontDescription.nonCJKGlyphOrientation() == NonCJKGlyphOrientation::Mixed) {
+            if (isCJKIdeographOrSymbol(baseCharacter)) {
+                if (!font->hasVerticalGlyphs())
+                    font = &font->brokenIdeographFont();
+            } else if (m_fontDescription.nonCJKGlyphOrientation() == NonCJKGlyphOrientation::Mixed) {
                 const Font& verticalRightFont = font->verticalRightOrientationFont();
                 Glyph verticalRightGlyph = verticalRightFont.glyphForCharacter(baseCharacter);
                 if (verticalRightGlyph == baseCharacterGlyphData.glyph)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to