Title: [270044] trunk
Revision
270044
Author
za...@apple.com
Date
2020-11-19 12:48:14 -0800 (Thu, 19 Nov 2020)

Log Message

[Legacy Line Layout] Inline box's subpixel vertical top position should be enclosed
https://bugs.webkit.org/show_bug.cgi?id=219142

Reviewed by Antti Koivisto.

Source/WebCore:

While the "logical top" here has floating point resolution, the "ascent" is integer type.
The implicit integral flooring may produce a short line box and it makes the inline box "sticks out" of the containing block.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):

LayoutTests:

* platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
* platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
* platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
* platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (270043 => 270044)


--- trunk/LayoutTests/ChangeLog	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/ChangeLog	2020-11-19 20:48:14 UTC (rev 270044)
@@ -1,3 +1,15 @@
+2020-11-19  Zalan Bujtas  <za...@apple.com>
+
+        [Legacy Line Layout] Inline box's subpixel vertical top position should be enclosed
+        https://bugs.webkit.org/show_bug.cgi?id=219142
+
+        Reviewed by Antti Koivisto.
+
+        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
+        * platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
+        * platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
+        * platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt:
+
 2020-11-19  Fujii Hironori  <hironori.fu...@sony.com>
 
         [TextureMapperGL] The invert filter wrongly inverts pre-multiplied alpha color

Modified: trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-element-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-element-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-element-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -3,11 +3,11 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {METER} at (0,43) size 80x17
+      RenderBlock {METER} at (0,44) size 80x17
         RenderBlock {DIV} at (0,0) size 80x16
           RenderBlock {DIV} at (0,0) size 80x16
             RenderBlock {DIV} at (0,0) size 18x16
-      RenderBlock {METER} at (80,-1) size 10x61
+      RenderBlock {METER} at (80,0) size 10x61
         RenderBlock {DIV} at (0,0) size 10x60
           RenderBlock {DIV} at (0,0) size 10x60
             RenderBlock {DIV} at (0,0) size 7x60

Modified: trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -9,8 +9,8 @@
       RenderBlock {P} at (0,59) size 784x21
         RenderText {#text} at (0,0) size 659x19
           text run at (0,0) width 659: "Following meter gauge should be solid green - Changing the paseudo class by changing value attribute"
-      RenderBlock (anonymous) at (0,95) size 784x16
-        RenderBlock {METER} at (0,-1) size 80x17
+      RenderBlock (anonymous) at (0,95) size 784x17
+        RenderBlock {METER} at (0,0) size 80x17
           RenderBlock {DIV} at (0,0) size 80x16
             RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#808080]
               RenderBlock {DIV} at (0,0) size 72x16 [bgcolor=#008000]

Modified: trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/ios/fast/dom/HTMLMeterElement/meter-styles-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -6,7 +6,7 @@
       RenderBlock {H2} at (3,0) size 778x20
         RenderText {#text} at (0,0) size 357x19
           text run at (0,0) width 357: "Horizontal meters with the non-themed default style"
-      RenderBlock {UL} at (3,23) size 778x65
+      RenderBlock {UL} at (3,23) size 778x66
         RenderListItem {LI} at (43,0) size 732x20
           RenderBlock {METER} at (0,2) size 80x17
             RenderBlock {DIV} at (0,0) size 80x16
@@ -24,28 +24,28 @@
             RenderBlock {DIV} at (0,0) size 80x16
               RenderBlock {DIV} at (0,0) size 80x16
                 RenderBlock {DIV} at (0,0) size 60x16
-        RenderListItem {LI} at (43,23) size 732x42
-          RenderBlock {METER} at (0,-1) size 30x41
+        RenderListItem {LI} at (43,23) size 732x43
+          RenderBlock {METER} at (0,0) size 30x41
             RenderBlock {DIV} at (0,0) size 30x40
               RenderBlock {DIV} at (0,0) size 30x40
                 RenderBlock {DIV} at (0,0) size 8x40
-          RenderText {#text} at (30,21) size 4x19
-            text run at (30,21) width 4: " "
-          RenderBlock {METER} at (34,-1) size 30x41
+          RenderText {#text} at (30,22) size 4x19
+            text run at (30,22) width 4: " "
+          RenderBlock {METER} at (34,0) size 30x41
             RenderBlock {DIV} at (0,0) size 30x40
               RenderBlock {DIV} at (0,0) size 30x40
                 RenderBlock {DIV} at (0,0) size 14x40
-          RenderText {#text} at (64,21) size 4x19
-            text run at (64,21) width 4: " "
-          RenderBlock {METER} at (68,-1) size 30x41
+          RenderText {#text} at (64,22) size 4x19
+            text run at (64,22) width 4: " "
+          RenderBlock {METER} at (68,0) size 30x41
             RenderBlock {DIV} at (0,0) size 30x40
               RenderBlock {DIV} at (0,0) size 30x40
                 RenderBlock {DIV} at (0,0) size 23x40
-      RenderBlock {H2} at (3,90) size 778x21
+      RenderBlock {H2} at (3,91) size 778x21
         RenderText {#text} at (0,0) size 153x19
           text run at (0,0) width 153: "Providing meter styles"
-      RenderBlock {DIV} at (0,113) size 784x75 [bgcolor=#EEEEEE]
-        RenderBlock {UL} at (3,0) size 778x74
+      RenderBlock {DIV} at (0,114) size 784x76 [bgcolor=#EEEEEE]
+        RenderBlock {UL} at (3,0) size 778x75
           RenderListItem {LI} at (43,0) size 732x20
             RenderBlock {METER} at (0,2) size 80x17 [bgcolor=#AAAACC] [border: (5px solid #222244) (20px solid #222244) (5px solid #222244) (10px solid #222244)]
               RenderBlock {DIV} at (10,5) size 50x6
@@ -60,17 +60,17 @@
                   RenderBlock {DIV} at (0,0) size 40x6
             RenderText {#text} at (80,0) size 81x19
               text run at (80,0) width 81: " has padding"
-          RenderListItem {LI} at (43,46) size 732x28
-            RenderBlock {METER} at (10,4) size 80x17 [bgcolor=#AAAACC]
+          RenderListItem {LI} at (43,46) size 732x29
+            RenderBlock {METER} at (10,5) size 80x17 [bgcolor=#AAAACC]
               RenderBlock {DIV} at (0,0) size 80x16
                 RenderBlock {DIV} at (0,0) size 80x16
                   RenderBlock {DIV} at (0,0) size 64x16
-            RenderText {#text} at (110,7) size 75x19
-              text run at (110,7) width 75: " has margin"
-      RenderBlock {H2} at (3,190) size 778x21
+            RenderText {#text} at (110,8) size 75x19
+              text run at (110,8) width 75: " has margin"
+      RenderBlock {H2} at (3,192) size 778x21
         RenderText {#text} at (0,0) size 226x19
           text run at (0,0) width 226: "Providing bar and/or value styles"
-      RenderBlock {DIV} at (0,213) size 784x183 [bgcolor=#EEEEEE]
+      RenderBlock {DIV} at (0,215) size 784x183 [bgcolor=#EEEEEE]
         RenderBlock {UL} at (3,0) size 778x90
           RenderBlock (anonymous) at (40,0) size 738x20
             RenderText {#text} at (0,0) size 486x19
@@ -121,10 +121,10 @@
                   RenderBlock {DIV} at (2,2) size 61x12 [bgcolor=#008000] [border: (2px solid #77CC77)]
             RenderText {#text} at (80,0) size 240x19
               text run at (80,0) width 240: " should have solid bar and value part."
-      RenderBlock {H2} at (3,399) size 778x20
+      RenderBlock {H2} at (3,401) size 778x20
         RenderText {#text} at (0,0) size 157x19
           text run at (0,0) width 157: "Providing appearances"
-      RenderBlock {DIV} at (0,422) size 784x44 [bgcolor=#EEEEEE]
+      RenderBlock {DIV} at (0,424) size 784x44 [bgcolor=#EEEEEE]
         RenderBlock {UL} at (3,0) size 778x44
           RenderListItem {LI} at (43,0) size 732x20
             RenderBlock {METER} at (0,2) size 80x17
@@ -140,10 +140,10 @@
                   RenderBlock {DIV} at (0,0) size 64x16
             RenderText {#text} at (80,0) size 280x19
               text run at (80,0) width 280: " has \"meter\" appearance, should be themed."
-      RenderBlock {H2} at (3,468) size 778x21
+      RenderBlock {H2} at (3,470) size 778x21
         RenderText {#text} at (0,0) size 162x19
           text run at (0,0) width 162: "Providing bar paddings"
-      RenderBlock {DIV} at (0,491) size 784x21 [bgcolor=#EEEEEE]
+      RenderBlock {DIV} at (0,493) size 784x21 [bgcolor=#EEEEEE]
         RenderBlock {METER} at (0,2) size 80x17
           RenderBlock {DIV} at (0,0) size 80x16
             RenderBlock {DIV} at (0,0) size 80x16

Modified: trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -3,7 +3,7 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x576
-      RenderBlock {UL} at (0,0) size 784x182
+      RenderBlock {UL} at (0,0) size 784x184
         RenderListItem {LI} at (40,0) size 744x20
           RenderListMarker at (-18,0) size 7x19: bullet
           RenderText {#text} at (0,0) size 91x19
@@ -20,15 +20,15 @@
             RenderProgress {DIV} at (3,3) size 154x10
               RenderBlock {DIV} at (0,0) size 154x10
                 RenderBlock {DIV} at (0,0) size 31x10 [bgcolor=#008000]
-        RenderListItem {LI} at (40,40) size 744x31
-          RenderListMarker at (-18,11) size 7x19: bullet
-          RenderText {#text} at (0,11) size 138x19
-            text run at (0,11) width 138: "Progress style (size): "
-          RenderBlock {PROGRESS} at (137,-1) size 301x31
+        RenderListItem {LI} at (40,40) size 744x32
+          RenderListMarker at (-18,12) size 7x19: bullet
+          RenderText {#text} at (0,12) size 138x19
+            text run at (0,12) width 138: "Progress style (size): "
+          RenderBlock {PROGRESS} at (137,0) size 301x31
             RenderProgress {DIV} at (0,0) size 300x30
               RenderBlock {DIV} at (0,0) size 300x30 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 90x30 [bgcolor=#008000]
-        RenderListItem {LI} at (40,71) size 744x20
+        RenderListItem {LI} at (40,72) size 744x20
           RenderListMarker at (-18,0) size 7x19: bullet
           RenderText {#text} at (0,0) size 66x19
             text run at (0,0) width 66: "Bar style: "
@@ -36,7 +36,7 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#FF0000] [border: (3px solid #990000)]
                 RenderBlock {DIV} at (3,3) size 62x10 [bgcolor=#008000]
-        RenderListItem {LI} at (40,91) size 744x20
+        RenderListItem {LI} at (40,92) size 744x20
           RenderListMarker at (-18,0) size 7x19: bullet
           RenderText {#text} at (0,0) size 80x19
             text run at (0,0) width 80: "Value style: "
@@ -44,15 +44,15 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#FFFF00] [border: (3px solid #999900)]
-        RenderListItem {LI} at (40,111) size 744x31
-          RenderListMarker at (-18,11) size 7x19: bullet
-          RenderText {#text} at (0,11) size 195x19
-            text run at (0,11) width 195: "Styling for all three elements: "
-          RenderBlock {PROGRESS} at (194,-1) size 161x31 [bgcolor=#0000FF] [border: (3px solid #000066)]
+        RenderListItem {LI} at (40,112) size 744x32
+          RenderListMarker at (-18,12) size 7x19: bullet
+          RenderText {#text} at (0,12) size 195x19
+            text run at (0,12) width 195: "Styling for all three elements: "
+          RenderBlock {PROGRESS} at (194,0) size 161x31 [bgcolor=#0000FF] [border: (3px solid #000066)]
             RenderProgress {DIV} at (3,3) size 154x24
               RenderBlock {DIV} at (0,0) size 154x24 [bgcolor=#FF0000] [border: (3px solid #990000)]
                 RenderBlock {DIV} at (3,3) size 89x18 [bgcolor=#FFFF00] [border: (3px solid #999900)]
-        RenderListItem {LI} at (40,142) size 744x20
+        RenderListItem {LI} at (40,144) size 744x20
           RenderListMarker at (-18,0) size 7x19: bullet
           RenderText {#text} at (0,0) size 235x19
             text run at (0,0) width 235: "Removing appearance dynamically: "
@@ -60,7 +60,7 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 112x16 [bgcolor=#008000]
-        RenderListItem {LI} at (40,162) size 744x20
+        RenderListItem {LI} at (40,164) size 744x20
           RenderListMarker at (-18,0) size 7x19: bullet
           RenderText {#text} at (0,0) size 278x19
             text run at (0,0) width 278: "Giving progress style change dynamically: "

Modified: trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-element-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-element-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/ios/fast/dom/HTMLProgressElement/progress-element-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -3,7 +3,7 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderProgress {PROGRESS} at (0,-1) size 160x17
+      RenderProgress {PROGRESS} at (0,0) size 160x17
       RenderInline {SMALL} at (0,0) size 134x15
-        RenderProgress {PROGRESS} at (160,1) size 134x14
+        RenderProgress {PROGRESS} at (160,2) size 134x14
       RenderText {#text} at (0,0) size 0x0

Modified: trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -9,8 +9,8 @@
       RenderBlock {P} at (0,58) size 784x19
         RenderText {#text} at (0,0) size 659x18
           text run at (0,0) width 659: "Following meter gauge should be solid green - Changing the paseudo class by changing value attribute"
-      RenderBlock (anonymous) at (0,92) size 784x16
-        RenderBlock {METER} at (0,-1) size 80x17
+      RenderBlock (anonymous) at (0,92) size 784x17
+        RenderBlock {METER} at (0,0) size 80x17
           RenderBlock {DIV} at (0,0) size 80x16
             RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#808080]
               RenderBlock {DIV} at (0,0) size 72x16 [bgcolor=#008000]

Modified: trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -1,15 +1,15 @@
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
-layer at (0,0) size 800x105
-  RenderBlock {HTML} at (0,0) size 800x105
-    RenderBody {BODY} at (8,16) size 784x73
+layer at (0,0) size 800x106
+  RenderBlock {HTML} at (0,0) size 800x106
+    RenderBody {BODY} at (8,16) size 784x74
       RenderBlock {P} at (0,0) size 784x18
         RenderText {#text} at (0,0) size 360x18
           text run at (0,0) width 360: "Test passes if following bars are filled 30% with a color."
-      RenderBlock {P} at (0,34) size 784x39
-        RenderProgress {PROGRESS} at (0,-1) size 160x22
-        RenderBR {BR} at (160,3) size 0x18
-        RenderBlock {PROGRESS} at (0,22) size 160x17
+      RenderBlock {P} at (0,34) size 784x40
+        RenderProgress {PROGRESS} at (0,0) size 160x22
+        RenderBR {BR} at (160,4) size 0x18
+        RenderBlock {PROGRESS} at (0,23) size 160x17
           RenderProgress {DIV} at (0,0) size 160x16
             RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#808080]
               RenderBlock {DIV} at (0,0) size 48x16 [bgcolor=#008000]

Modified: trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -3,7 +3,7 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x576
-      RenderBlock {UL} at (0,0) size 784x168
+      RenderBlock {UL} at (0,0) size 784x170
         RenderListItem {LI} at (40,0) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
           RenderText {#text} at (0,0) size 91x18
@@ -20,15 +20,15 @@
             RenderProgress {DIV} at (3,3) size 154x10
               RenderBlock {DIV} at (0,0) size 154x10
                 RenderBlock {DIV} at (0,0) size 31x10 [bgcolor=#008000]
-        RenderListItem {LI} at (40,36) size 744x30
-          RenderListMarker at (-17,12) size 7x18: bullet
-          RenderText {#text} at (0,12) size 138x18
-            text run at (0,12) width 138: "Progress style (size): "
-          RenderBlock {PROGRESS} at (137,-1) size 301x31
+        RenderListItem {LI} at (40,36) size 744x31
+          RenderListMarker at (-17,13) size 7x18: bullet
+          RenderText {#text} at (0,13) size 138x18
+            text run at (0,13) width 138: "Progress style (size): "
+          RenderBlock {PROGRESS} at (137,0) size 301x31
             RenderProgress {DIV} at (0,0) size 300x30
               RenderBlock {DIV} at (0,0) size 300x30 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 90x30 [bgcolor=#008000]
-        RenderListItem {LI} at (40,66) size 744x18
+        RenderListItem {LI} at (40,67) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
           RenderText {#text} at (0,0) size 66x18
             text run at (0,0) width 66: "Bar style: "
@@ -36,7 +36,7 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#FF0000] [border: (3px solid #990000)]
                 RenderBlock {DIV} at (3,3) size 62x10 [bgcolor=#008000]
-        RenderListItem {LI} at (40,84) size 744x18
+        RenderListItem {LI} at (40,85) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
           RenderText {#text} at (0,0) size 80x18
             text run at (0,0) width 80: "Value style: "
@@ -44,15 +44,15 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#FFFF00] [border: (3px solid #999900)]
-        RenderListItem {LI} at (40,102) size 744x30
-          RenderListMarker at (-17,12) size 7x18: bullet
-          RenderText {#text} at (0,12) size 195x18
-            text run at (0,12) width 195: "Styling for all three elements: "
-          RenderBlock {PROGRESS} at (194,-1) size 161x31 [bgcolor=#0000FF] [border: (3px solid #000066)]
+        RenderListItem {LI} at (40,103) size 744x31
+          RenderListMarker at (-17,13) size 7x18: bullet
+          RenderText {#text} at (0,13) size 195x18
+            text run at (0,13) width 195: "Styling for all three elements: "
+          RenderBlock {PROGRESS} at (194,0) size 161x31 [bgcolor=#0000FF] [border: (3px solid #000066)]
             RenderProgress {DIV} at (3,3) size 154x24
               RenderBlock {DIV} at (0,0) size 154x24 [bgcolor=#FF0000] [border: (3px solid #990000)]
                 RenderBlock {DIV} at (3,3) size 89x18 [bgcolor=#FFFF00] [border: (3px solid #999900)]
-        RenderListItem {LI} at (40,132) size 744x18
+        RenderListItem {LI} at (40,134) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
           RenderText {#text} at (0,0) size 235x18
             text run at (0,0) width 235: "Removing appearance dynamically: "
@@ -60,7 +60,7 @@
             RenderProgress {DIV} at (0,0) size 160x16
               RenderBlock {DIV} at (0,0) size 160x16 [bgcolor=#808080]
                 RenderBlock {DIV} at (0,0) size 112x16 [bgcolor=#008000]
-        RenderListItem {LI} at (40,150) size 744x18
+        RenderListItem {LI} at (40,152) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
           RenderText {#text} at (0,0) size 278x18
             text run at (0,0) width 278: "Giving progress style change dynamically: "

Modified: trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt (270043 => 270044)


--- trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/LayoutTests/platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt	2020-11-19 20:48:14 UTC (rev 270044)
@@ -3,7 +3,7 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderProgress {PROGRESS} at (0,-1) size 160x22
+      RenderProgress {PROGRESS} at (0,0) size 160x22
       RenderInline {SMALL} at (0,0) size 134x15
-        RenderProgress {PROGRESS} at (160,6) size 134x14
+        RenderProgress {PROGRESS} at (160,7) size 134x14
       RenderText {#text} at (0,0) size 0x0

Modified: trunk/Source/WebCore/ChangeLog (270043 => 270044)


--- trunk/Source/WebCore/ChangeLog	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/Source/WebCore/ChangeLog	2020-11-19 20:48:14 UTC (rev 270044)
@@ -1,3 +1,16 @@
+2020-11-19  Zalan Bujtas  <za...@apple.com>
+
+        [Legacy Line Layout] Inline box's subpixel vertical top position should be enclosed
+        https://bugs.webkit.org/show_bug.cgi?id=219142
+
+        Reviewed by Antti Koivisto.
+
+        While the "logical top" here has floating point resolution, the "ascent" is integer type.
+        The implicit integral flooring may produce a short line box and it makes the inline box "sticks out" of the containing block.
+
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
+
 2020-11-19  Don Olmstead  <don.olmst...@sony.com>
 
         Use final in generated wrapper owner code

Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (270043 => 270044)


--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2020-11-19 20:45:50 UTC (rev 270043)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2020-11-19 20:48:14 UTC (rev 270044)
@@ -599,7 +599,7 @@
             // means is that ascent and descent (including leading), can end up being negative.  The setMaxAscent and
             // setMaxDescent booleans are used to ensure that we're willing to initially set maxAscent/Descent to negative
             // values.
-            ascent -= child->logicalTop();
+            ascent -= floorf(child->logicalTop());
             descent += child->logicalTop();
             if (affectsAscent && (maxAscent < ascent || !setMaxAscent)) {
                 maxAscent = ascent;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to