Title: [254438] trunk
Revision
254438
Author
[email protected]
Date
2020-01-13 10:34:42 -0800 (Mon, 13 Jan 2020)

Log Message

[LFC][Integration] Turn off trailing letter-space trimming for the LineBreaker content
https://bugs.webkit.org/show_bug.cgi?id=206181
<rdar://problem/58532931>

Reviewed by Antti Koivisto.

Source/WebCore:

Do not mark trailing letter-spacing as trimmable in the "continuous content" we feed in to line breaking.
This causes different and unexpected line breaking behavior as we don't try to fit the letter-spacing after the last character.

* layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::ContinuousContent::ContinuousContent):

LayoutTests:

* platform/ios/css1/text_properties/letter_spacing-expected.txt: Undo the rebaselining.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (254437 => 254438)


--- trunk/LayoutTests/ChangeLog	2020-01-13 17:52:48 UTC (rev 254437)
+++ trunk/LayoutTests/ChangeLog	2020-01-13 18:34:42 UTC (rev 254438)
@@ -1,3 +1,13 @@
+2020-01-13  Zalan Bujtas  <[email protected]>
+
+        [LFC][Integration] Turn off trailing letter-space trimming for the LineBreaker content
+        https://bugs.webkit.org/show_bug.cgi?id=206181
+        <rdar://problem/58532931>
+
+        Reviewed by Antti Koivisto.
+
+        * platform/ios/css1/text_properties/letter_spacing-expected.txt: Undo the rebaselining.
+
 2020-01-13  Wenson Hsieh  <[email protected]>
 
         [iOS] editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html times out

Modified: trunk/LayoutTests/platform/ios/css1/text_properties/letter_spacing-expected.txt (254437 => 254438)


--- trunk/LayoutTests/platform/ios/css1/text_properties/letter_spacing-expected.txt	2020-01-13 17:52:48 UTC (rev 254437)
+++ trunk/LayoutTests/platform/ios/css1/text_properties/letter_spacing-expected.txt	2020-01-13 18:34:42 UTC (rev 254438)
@@ -1,8 +1,8 @@
-layer at (0,0) size 805x1439
+layer at (0,0) size 800x1459
   RenderView at (0,0) size 800x600
-layer at (0,0) size 800x1439
-  RenderBlock {HTML} at (0,0) size 800x1439
-    RenderBody {BODY} at (8,8) size 784x1423 [bgcolor=#CCCCCC]
+layer at (0,0) size 800x1459
+  RenderBlock {HTML} at (0,0) size 800x1459
+    RenderBody {BODY} at (8,8) size 784x1443 [bgcolor=#CCCCCC]
       RenderBlock {P} at (0,0) size 784x20
         RenderText {#text} at (0,0) size 363x19
           text run at (0,0) width 363: "The style declarations which apply to the text below are:"
@@ -38,15 +38,15 @@
           text run at (0,40) width 677: "extra space between"
           text run at (0,60) width 180: "them."
       RenderBlock {P} at (0,317) size 784x60
-        RenderText {#text} at (0,0) size 796x59
+        RenderText {#text} at (0,0) size 723x59
           text run at (0,0) width 723: "This letters in this sentence"
-          text run at (0,20) width 796: "should have extra space between"
-          text run at (0,40) width 131: "them."
+          text run at (0,20) width 588: "should have extra space"
+          text run at (0,40) width 339: "between them."
       RenderBlock {P} at (0,393) size 784x60
-        RenderText {#text} at (0,0) size 796x59
+        RenderText {#text} at (0,0) size 723x59
           text run at (0,0) width 723: "This letters in this sentence"
-          text run at (0,20) width 796: "should have extra space between"
-          text run at (0,40) width 131: "them."
+          text run at (0,20) width 588: "should have extra space"
+          text run at (0,40) width 339: "between them."
       RenderBlock {P} at (0,469) size 784x20
         RenderText {#text} at (0,0) size 696x19
           text run at (0,0) width 696: "This letters in this sentence should have extra space between them."
@@ -53,15 +53,16 @@
       RenderBlock {P} at (0,505) size 784x20
         RenderText {#text} at (0,0) size 696x19
           text run at (0,0) width 696: "This letters in this sentence should have extra space between them."
-      RenderBlock {P} at (0,541) size 784x40
-        RenderText {#text} at (0,0) size 797x39
-          text run at (0,0) width 797: "This letters in this sentence should"
-          text run at (0,20) width 684: "have extra space between them."
-      RenderBlock {P} at (0,597) size 784x40
+      RenderBlock {P} at (0,541) size 784x60
+        RenderText {#text} at (0,0) size 706x59
+          text run at (0,0) width 639: "This letters in this sentence"
+          text run at (0,20) width 706: "should have extra space between"
+          text run at (0,40) width 116: "them."
+      RenderBlock {P} at (0,617) size 784x40
         RenderText {#text} at (0,0) size 710x39
           text run at (0,0) width 710: "This letters in this sentence should have extra space"
           text run at (0,20) width 187: "between them."
-      RenderBlock {P} at (0,653) size 784x40
+      RenderBlock {P} at (0,673) size 784x40
         RenderText {#text} at (0,0) size 763x39
           text run at (0,0) width 763: "This letters in this sentence should have extra space between them,"
           text run at (0,20) width 440: "but the last few words in the sentence "
@@ -70,14 +71,14 @@
             text run at (439,20) width 184: "should show normal spacing"
         RenderText {#text} at (622,20) size 10x19
           text run at (622,20) width 10: "."
-      RenderBlock {P} at (0,709) size 784x40
+      RenderBlock {P} at (0,729) size 784x40
         RenderText {#text} at (0,0) size 746x39
           text run at (0,0) width 746: "This letters in this sentence should have normal space between them, since percentage values are not allowed on this"
           text run at (0,20) width 58: "property."
-      RenderBlock {P} at (0,765) size 784x20
+      RenderBlock {P} at (0,785) size 784x20
         RenderText {#text} at (0,0) size 580x19
           text run at (0,0) width 580: "This letters in this sentence should have reduced space between them, since negative values are allowed on this property."
-      RenderTable {TABLE} at (0,801) size 784x622 [border: (1px outset #808080)]
+      RenderTable {TABLE} at (0,821) size 784x622 [border: (1px outset #808080)]
         RenderTableSection {TBODY} at (1,1) size 782x620
           RenderTableRow {TR} at (0,0) size 782x28
             RenderTableCell {TD} at (0,0) size 782x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]

Modified: trunk/Source/WebCore/ChangeLog (254437 => 254438)


--- trunk/Source/WebCore/ChangeLog	2020-01-13 17:52:48 UTC (rev 254437)
+++ trunk/Source/WebCore/ChangeLog	2020-01-13 18:34:42 UTC (rev 254438)
@@ -1,3 +1,17 @@
+2020-01-13  Zalan Bujtas  <[email protected]>
+
+        [LFC][Integration] Turn off trailing letter-space trimming for the LineBreaker content
+        https://bugs.webkit.org/show_bug.cgi?id=206181
+        <rdar://problem/58532931>
+
+        Reviewed by Antti Koivisto.
+
+        Do not mark trailing letter-spacing as trimmable in the "continuous content" we feed in to line breaking.
+        This causes different and unexpected line breaking behavior as we don't try to fit the letter-spacing after the last character.
+
+        * layout/inlineformatting/InlineLineBreaker.cpp:
+        (WebCore::Layout::ContinuousContent::ContinuousContent):
+
 2020-01-13  Antti Koivisto  <[email protected]>
 
         [LFC][Integration] editing/text-iterator/findString.html fails on iOS

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp (254437 => 254438)


--- trunk/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp	2020-01-13 17:52:48 UTC (rev 254437)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp	2020-01-13 18:34:42 UTC (rev 254438)
@@ -32,6 +32,7 @@
 #include "Hyphenation.h"
 #include "InlineItem.h"
 #include "InlineTextItem.h"
+#include "RuntimeEnabledFeatures.h"
 #include "TextUtil.h"
 
 namespace WebCore {
@@ -360,9 +361,12 @@
                 // Let's see if we've got more trailing whitespace content.
                 continue;
             }
-            if (auto collapsibleWidth = inlineTextItem.style().letterSpacing()) {
-                m_trailingCollapsibleContent.width += collapsibleWidth;
-                m_trailingCollapsibleContent.isFullyCollapsible = false;
+            if (!RuntimeEnabledFeatures::sharedFeatures().layoutFormattingContextIntegrationEnabled()) {
+                // A run with trailing letter spacing is partially collapsible.
+                if (auto collapsibleWidth = inlineTextItem.style().letterSpacing()) {
+                    m_trailingCollapsibleContent.width += collapsibleWidth;
+                    m_trailingCollapsibleContent.isFullyCollapsible = false;
+                }
             }
             // End of whitespace content.
             break;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to