Title: [230797] trunk
Revision
230797
Author
r...@igalia.com
Date
2018-04-19 00:10:48 -0700 (Thu, 19 Apr 2018)

Log Message

Caret rendered at incorrect location inside empty table cell
https://bugs.webkit.org/show_bug.cgi?id=85385

Reviewed by Zalan Bujtas.

Source/WebCore:

This is based on a previous patch by Shezan Baig <shezbaig...@gmail.com>.

This fixes the position of the caret in empty cells,
that was painted lower than expected
(and then modified when you start to edit the cell).

Ensures that editable table cells have at least one line when
they are laid out. This ensures that the cell's intrinsic before/after
padding is calculated correctly, which results in the caret location
being calculated correctly.

Test: editing/caret/caret-in-empty-cell.html

* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::hasLineIfEmpty): Override method to consider
that it has an an empty line if the table cell is editable.
* rendering/RenderTableCell.h:

LayoutTests:

* editing/caret/caret-in-empty-cell-expected.html: Added.
* editing/caret/caret-in-empty-cell.html: Added.
* editing/deleting/5206311-2-expected.txt:
* editing/deleting/5433862-1-expected.txt:
* platform/gtk/editing/deleting/5126166-expected.png:
* platform/gtk/editing/deleting/5126166-expected.txt:
* platform/gtk/editing/deleting/5206311-1-expected.png:
* platform/gtk/editing/deleting/5206311-1-expected.txt:
* platform/gtk/editing/deleting/5433862-2-expected.png:
* platform/gtk/editing/deleting/5433862-2-expected.txt:
* platform/gtk/editing/deleting/5483370-expected.png:
* platform/gtk/editing/deleting/5483370-expected.txt:
* platform/gtk/editing/selection/move-by-line-001-expected.png:
* platform/gtk/editing/selection/move-by-line-001-expected.txt:
* platform/gtk/editing/selection/select-all-004-expected.txt:
* platform/ios-simulator/editing/deleting/5126166-expected.txt:
* platform/ios-simulator/editing/deleting/5206311-1-expected.txt:
* platform/ios-simulator/editing/deleting/5433862-2-expected.txt:
* platform/ios-simulator/editing/deleting/5483370-expected.txt:
* platform/mac/editing/deleting/5126166-expected.png:
* platform/mac/editing/deleting/5126166-expected.txt:
* platform/mac/editing/deleting/5206311-1-expected.png:
* platform/mac/editing/deleting/5206311-1-expected.txt:
* platform/mac/editing/deleting/5433862-2-expected.png:
* platform/mac/editing/deleting/5433862-2-expected.txt:
* platform/mac/editing/deleting/5483370-expected.png:
* platform/mac/editing/deleting/5483370-expected.txt:
* platform/mac/editing/selection/move-by-line-001-expected.txt:
* platform/mac/editing/selection/select-all-004-expected.txt:
* platform/win/editing/deleting/5126166-expected.png: Added.
* platform/win/editing/deleting/5126166-expected.txt:
* platform/win/editing/deleting/5206311-1-expected.png: Added.
* platform/win/editing/deleting/5206311-1-expected.txt:
* platform/win/editing/deleting/5433862-2-expected.png: Added.
* platform/win/editing/deleting/5433862-2-expected.txt:
* platform/win/editing/deleting/5483370-expected.png: Added.
* platform/win/editing/deleting/5483370-expected.txt:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (230796 => 230797)


--- trunk/LayoutTests/ChangeLog	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/ChangeLog	2018-04-19 07:10:48 UTC (rev 230797)
@@ -1,3 +1,48 @@
+2018-04-19  Manuel Rego Casasnovas  <r...@igalia.com>
+
+        Caret rendered at incorrect location inside empty table cell
+        https://bugs.webkit.org/show_bug.cgi?id=85385
+
+        Reviewed by Zalan Bujtas.
+
+        * editing/caret/caret-in-empty-cell-expected.html: Added.
+        * editing/caret/caret-in-empty-cell.html: Added.
+        * editing/deleting/5206311-2-expected.txt:
+        * editing/deleting/5433862-1-expected.txt:
+        * platform/gtk/editing/deleting/5126166-expected.png:
+        * platform/gtk/editing/deleting/5126166-expected.txt:
+        * platform/gtk/editing/deleting/5206311-1-expected.png:
+        * platform/gtk/editing/deleting/5206311-1-expected.txt:
+        * platform/gtk/editing/deleting/5433862-2-expected.png:
+        * platform/gtk/editing/deleting/5433862-2-expected.txt:
+        * platform/gtk/editing/deleting/5483370-expected.png:
+        * platform/gtk/editing/deleting/5483370-expected.txt:
+        * platform/gtk/editing/selection/move-by-line-001-expected.png:
+        * platform/gtk/editing/selection/move-by-line-001-expected.txt:
+        * platform/gtk/editing/selection/select-all-004-expected.txt:
+        * platform/ios-simulator/editing/deleting/5126166-expected.txt:
+        * platform/ios-simulator/editing/deleting/5206311-1-expected.txt:
+        * platform/ios-simulator/editing/deleting/5433862-2-expected.txt:
+        * platform/ios-simulator/editing/deleting/5483370-expected.txt:
+        * platform/mac/editing/deleting/5126166-expected.png:
+        * platform/mac/editing/deleting/5126166-expected.txt:
+        * platform/mac/editing/deleting/5206311-1-expected.png:
+        * platform/mac/editing/deleting/5206311-1-expected.txt:
+        * platform/mac/editing/deleting/5433862-2-expected.png:
+        * platform/mac/editing/deleting/5433862-2-expected.txt:
+        * platform/mac/editing/deleting/5483370-expected.png:
+        * platform/mac/editing/deleting/5483370-expected.txt:
+        * platform/mac/editing/selection/move-by-line-001-expected.txt:
+        * platform/mac/editing/selection/select-all-004-expected.txt:
+        * platform/win/editing/deleting/5126166-expected.png: Added.
+        * platform/win/editing/deleting/5126166-expected.txt:
+        * platform/win/editing/deleting/5206311-1-expected.png: Added.
+        * platform/win/editing/deleting/5206311-1-expected.txt:
+        * platform/win/editing/deleting/5433862-2-expected.png: Added.
+        * platform/win/editing/deleting/5433862-2-expected.txt:
+        * platform/win/editing/deleting/5483370-expected.png: Added.
+        * platform/win/editing/deleting/5483370-expected.txt:
+
 2018-04-18  Youenn Fablet  <you...@apple.com>
 
         Allow SameOrigin credentials handling for synchronous XHR

Added: trunk/LayoutTests/editing/caret/caret-in-empty-cell-expected.html (0 => 230797)


--- trunk/LayoutTests/editing/caret/caret-in-empty-cell-expected.html	                        (rev 0)
+++ trunk/LayoutTests/editing/caret/caret-in-empty-cell-expected.html	2018-04-19 07:10:48 UTC (rev 230797)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<style>
+  table {
+    font-size: 2em;
+  }
+  td {
+    padding: 5px;
+  }
+  #emptycell {
+    width: 50%;
+  }
+</style>
+
+<p>Test passes if the caret in the empty cell is inside the cell itself (that means it's vertically aligned with the reference text).</p>
+
+<table border="1" contenteditable>
+  <td>Reference text</td>
+  <td id="emptycell">&nbsp;</td>
+</table>
+
+<script>
+  var selection = window.getSelection();
+  var emptycell = document.getElementById("emptycell");
+  selection.collapse(emptycell, 0);
+</script>

Added: trunk/LayoutTests/editing/caret/caret-in-empty-cell.html (0 => 230797)


--- trunk/LayoutTests/editing/caret/caret-in-empty-cell.html	                        (rev 0)
+++ trunk/LayoutTests/editing/caret/caret-in-empty-cell.html	2018-04-19 07:10:48 UTC (rev 230797)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<style>
+  table {
+    font-size: 2em;
+  }
+  td {
+    padding: 5px;
+  }
+  #emptycell {
+    width: 50%;
+  }
+</style>
+
+<p>Test passes if the caret in the empty cell is inside the cell itself (that means it's vertically aligned with the reference text).</p>
+
+<table border="1" contenteditable>
+  <td>Reference text</td>
+  <td id="emptycell"></td>
+</table>
+
+<script>
+  var selection = window.getSelection();
+  var emptycell = document.getElementById("emptycell");
+  selection.collapse(emptycell, 0);
+</script>

Modified: trunk/LayoutTests/editing/deleting/5206311-2-expected.txt (230796 => 230797)


--- trunk/LayoutTests/editing/deleting/5206311-2-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/editing/deleting/5206311-2-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -27,7 +27,6 @@
 |         "<#selection-caret>world!"
 |         <br>
 |       <td>
-|         <br>
 | "
 "
 
@@ -59,16 +58,13 @@
 |         <#selection-caret>
 |         <br>
 |       <td>
-|         <br>
 | <table>
 |   border="1"
 |   <tbody>
 |     <tr>
 |       <td>
-|         <br>
 |       <td>
 |         class="end"
-|         <br>
 |       <td>
 |         "6"
 |     "

Modified: trunk/LayoutTests/editing/deleting/5433862-1-expected.txt (230796 => 230797)


--- trunk/LayoutTests/editing/deleting/5433862-1-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/editing/deleting/5433862-1-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -2,7 +2,4 @@
 
 foo
 
-
-
-
 foo	bar	baz

Modified: trunk/LayoutTests/editing/selection/select-all-004-expected.txt (230796 => 230797)


--- trunk/LayoutTests/editing/selection/select-all-004-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/editing/selection/select-all-004-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,11 +12,11 @@
       RenderBlock (anonymous) at (74,74) size 600x48
         RenderText {#text} at (0,11) size 54x26
           text run at (0,11) width 54: "Hello"
-      RenderTable {TABLE} at (74,122) size 6x6
-        RenderTableSection {TBODY} at (0,0) size 6x6
-          RenderTableRow {TR} at (0,2) size 6x2
-            RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
-      RenderBlock (anonymous) at (74,128) size 600x48
+      RenderTable {TABLE} at (74,122) size 6x23
+        RenderTableSection {TBODY} at (0,0) size 6x23
+          RenderTableRow {TR} at (0,2) size 6x19
+            RenderTableCell {TD} at (2,2) size 2x19 [r=0 c=0 rs=1 cs=1]
+      RenderBlock (anonymous) at (74,145) size 600x48
         RenderBR {BR} at (0,11) size 0x26
 selection start: position 1 of child 2 {#text} of body
 selection end:   position 0 of child 5 {BR} of body

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5126166-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5126166-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/gtk/editing/deleting/5126166-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/gtk/editing/deleting/5126166-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,13 +12,13 @@
         RenderTable {TABLE} at (0,0) size 16x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 14x26
             RenderTableRow {TR} at (0,2) size 14x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x17
         RenderTable {TABLE} at (0,28) size 351x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 349x26
             RenderTableRow {TR} at (0,2) size 349x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 339x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 335x17
                   text run at (2,2) width 335: "There should be one empty cell to the left of this one."

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5206311-1-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5206311-1-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/gtk/editing/deleting/5206311-1-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/gtk/editing/deleting/5206311-1-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -21,12 +21,9 @@
               RenderTableCell {TD} at (16,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (22,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
             RenderTableRow {TR} at (0,26) size 36x22
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (16,26) size 4x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (22,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x17
                   text run at (2,2) width 8: "9"
@@ -50,9 +47,7 @@
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (16,26) size 12x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (30,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
             RenderTableRow {TR} at (0,50) size 44x22
               RenderTableCell {TD} at (2,50) size 12x22 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x17
@@ -75,9 +70,7 @@
           RenderTableSection {TBODY} at (1,1) size 44x50
             RenderTableRow {TR} at (0,2) size 44x22
               RenderTableCell {TD} at (2,2) size 12x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (16,2) size 12x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x17
               RenderTableCell {TD} at (30,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x17
                   text run at (2,2) width 8: "6"

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5433862-2-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5433862-2-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/gtk/editing/deleting/5433862-2-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/gtk/editing/deleting/5433862-2-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -15,9 +15,7 @@
               RenderTableCell {TD} at (2,2) size 33x30 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBR {BR} at (6,6) size 0x17
               RenderTableCell {TD} at (37,2) size 32x30 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x17
               RenderTableCell {TD} at (71,2) size 34x30 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x17
             RenderTableRow {TR} at (0,34) size 107x30
               RenderTableCell {TD} at (2,34) size 33x30 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderText {#text} at (6,6) size 21x17

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5483370-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/editing/deleting/5483370-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/gtk/editing/deleting/5483370-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/gtk/editing/deleting/5483370-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -8,15 +8,15 @@
           text run at (0,0) width 706: "This tests for a problem where empty table rows after the selection being deleted would be removed incorrectly. "
           text run at (706,0) width 55: "Only the"
           text run at (0,18) width 343: "last letter in 'foo' should be removed during this delete."
-      RenderBlock {DIV} at (0,52) size 784x34
-        RenderTable {TABLE} at (0,0) size 29x34 [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 27x32
+      RenderBlock {DIV} at (0,52) size 784x52
+        RenderTable {TABLE} at (0,0) size 29x52 [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 27x50
             RenderTableRow {TR} at (0,2) size 27x22
               RenderTableCell {TD} at (2,2) size 17x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 13x17
                   text run at (2,2) width 13: "fo"
-              RenderTableCell {TD} at (21,11) size 4x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-            RenderTableRow {TR} at (0,26) size 27x4
-              RenderTableCell {TD} at (2,26) size 17x4 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableCell {TD} at (21,26) size 4x4 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+              RenderTableCell {TD} at (21,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableRow {TR} at (0,26) size 27x22
+              RenderTableCell {TD} at (2,26) size 17x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (21,26) size 4x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
 caret: position 2 of child 0 {#text} of child 0 {TD} of child 0 {TR} of child 0 {TBODY} of child 0 {TABLE} of child 2 {DIV} of body

Modified: trunk/LayoutTests/platform/gtk/editing/selection/move-by-line-001-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/editing/selection/move-by-line-001-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/gtk/editing/selection/move-by-line-001-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/gtk/editing/selection/move-by-line-001-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -10,18 +10,18 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 784x192 [border: (2px solid #FF0000)]
-        RenderBlock {DIV} at (14,14) size 756x164
-          RenderTable {TABLE} at (0,0) size 64x164 [border: (1px outset #808080)]
-            RenderTableSection {TBODY} at (1,1) size 62x162
+      RenderBlock {DIV} at (0,0) size 784x197 [border: (2px solid #FF0000)]
+        RenderBlock {DIV} at (14,14) size 756x169
+          RenderTable {TABLE} at (0,0) size 64x169 [border: (1px outset #808080)]
+            RenderTableSection {TBODY} at (1,1) size 62x167
               RenderTableRow {TR} at (0,2) size 62x53
                 RenderTableCell {TD} at (2,2) size 58x53 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (13,13) size 32x26
                     text run at (13,13) width 32: "foo"
-              RenderTableRow {TR} at (0,57) size 62x48
-                RenderTableCell {TD} at (2,68) size 58x26 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableRow {TR} at (0,107) size 62x53
-                RenderTableCell {TD} at (2,107) size 58x53 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
+              RenderTableRow {TR} at (0,57) size 62x53
+                RenderTableCell {TD} at (2,57) size 58x53 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableRow {TR} at (0,112) size 62x53
+                RenderTableCell {TD} at (2,112) size 58x53 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                   RenderText {#text} at (13,13) size 31x26
                     text run at (13,13) width 31: "bar"
 caret: position 2 of child 1 {TABLE} of child 1 {DIV} of child 1 {DIV} of body

Modified: trunk/LayoutTests/platform/ios/editing/deleting/5126166-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/ios/editing/deleting/5126166-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/ios/editing/deleting/5126166-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,13 +12,13 @@
         RenderTable {TABLE} at (0,0) size 16x30 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 14x28
             RenderTableRow {TR} at (0,2) size 14x24
-              RenderTableCell {TD} at (2,12) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 4x24 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x19
         RenderTable {TABLE} at (0,30) size 359x30 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 357x28
             RenderTableRow {TR} at (0,2) size 357x24
-              RenderTableCell {TD} at (2,12) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 347x24 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 343x19
                   text run at (2,2) width 343: "There should be one empty cell to the left of this one."

Modified: trunk/LayoutTests/platform/ios/editing/deleting/5206311-1-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/ios/editing/deleting/5206311-1-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/ios/editing/deleting/5206311-1-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -21,12 +21,9 @@
               RenderTableCell {TD} at (16,2) size 4x24 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (22,2) size 12x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
             RenderTableRow {TR} at (0,28) size 36x24
               RenderTableCell {TD} at (2,28) size 12x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (16,28) size 4x24 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (22,28) size 12x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x19
                   text run at (2,2) width 8: "9"
@@ -50,9 +47,7 @@
               RenderTableCell {TD} at (2,28) size 12x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (16,28) size 12x24 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (30,28) size 12x24 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
             RenderTableRow {TR} at (0,54) size 44x24
               RenderTableCell {TD} at (2,54) size 12x24 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x19
@@ -75,9 +70,7 @@
           RenderTableSection {TBODY} at (1,1) size 44x54
             RenderTableRow {TR} at (0,2) size 44x24
               RenderTableCell {TD} at (2,2) size 12x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (16,2) size 12x24 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x19
               RenderTableCell {TD} at (30,2) size 12x24 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x19
                   text run at (2,2) width 8: "6"

Modified: trunk/LayoutTests/platform/ios/editing/deleting/5433862-2-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/ios/editing/deleting/5433862-2-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/ios/editing/deleting/5433862-2-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -15,9 +15,7 @@
               RenderTableCell {TD} at (2,2) size 34x32 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBR {BR} at (6,6) size 0x19
               RenderTableCell {TD} at (37,2) size 33x32 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x19
               RenderTableCell {TD} at (71,2) size 35x32 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x19
             RenderTableRow {TR} at (0,36) size 108x32
               RenderTableCell {TD} at (2,36) size 34x32 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderText {#text} at (6,6) size 22x19

Modified: trunk/LayoutTests/platform/ios/editing/deleting/5483370-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/ios/editing/deleting/5483370-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/ios/editing/deleting/5483370-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -8,15 +8,15 @@
           text run at (0,0) width 721: "This tests for a problem where empty table rows after the selection being deleted would be removed incorrectly. "
           text run at (720,0) width 56: "Only the"
           text run at (0,20) width 352: "last letter in 'foo' should be removed during this delete."
-      RenderBlock {DIV} at (0,56) size 784x36
-        RenderTable {TABLE} at (0,0) size 30x36 [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 28x34
+      RenderBlock {DIV} at (0,56) size 784x56
+        RenderTable {TABLE} at (0,0) size 30x56 [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 28x54
             RenderTableRow {TR} at (0,2) size 28x24
               RenderTableCell {TD} at (2,2) size 18x24 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 14x19
                   text run at (2,2) width 14: "fo"
-              RenderTableCell {TD} at (21,12) size 5x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-            RenderTableRow {TR} at (0,28) size 28x4
-              RenderTableCell {TD} at (2,28) size 18x4 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableCell {TD} at (21,28) size 5x4 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+              RenderTableCell {TD} at (21,2) size 5x24 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableRow {TR} at (0,28) size 28x24
+              RenderTableCell {TD} at (2,28) size 18x24 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (21,28) size 5x24 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
 caret: position 2 of child 0 {#text} of child 0 {TD} of child 0 {TR} of child 0 {TBODY} of child 0 {TABLE} of child 2 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5126166-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5126166-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/deleting/5126166-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/deleting/5126166-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,13 +12,13 @@
         RenderTable {TABLE} at (0,0) size 16x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 14x26
             RenderTableRow {TR} at (0,2) size 14x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
         RenderTable {TABLE} at (0,28) size 359x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 357x26
             RenderTableRow {TR} at (0,2) size 357x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 347x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 343x18
                   text run at (2,2) width 343: "There should be one empty cell to the left of this one."

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5206311-1-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5206311-1-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/deleting/5206311-1-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/deleting/5206311-1-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -21,12 +21,9 @@
               RenderTableCell {TD} at (16,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (22,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
             RenderTableRow {TR} at (0,26) size 36x22
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,26) size 4x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (22,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
                   text run at (2,2) width 8: "9"
@@ -50,9 +47,7 @@
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,26) size 12x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (30,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
             RenderTableRow {TR} at (0,50) size 44x22
               RenderTableCell {TD} at (2,50) size 12x22 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
@@ -75,9 +70,7 @@
           RenderTableSection {TBODY} at (1,1) size 44x50
             RenderTableRow {TR} at (0,2) size 44x22
               RenderTableCell {TD} at (2,2) size 12x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,2) size 12x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (30,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
                   text run at (2,2) width 8: "6"

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5433862-2-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5433862-2-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/deleting/5433862-2-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/deleting/5433862-2-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -15,9 +15,7 @@
               RenderTableCell {TD} at (2,2) size 34x30 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBR {BR} at (6,6) size 0x18
               RenderTableCell {TD} at (37,2) size 33x30 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x18
               RenderTableCell {TD} at (71,2) size 35x30 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x18
             RenderTableRow {TR} at (0,34) size 108x30
               RenderTableCell {TD} at (2,34) size 34x30 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderText {#text} at (6,6) size 22x18

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5483370-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/mac/editing/deleting/5483370-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/deleting/5483370-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/deleting/5483370-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -8,15 +8,15 @@
           text run at (0,0) width 721: "This tests for a problem where empty table rows after the selection being deleted would be removed incorrectly. "
           text run at (720,0) width 56: "Only the"
           text run at (0,18) width 352: "last letter in 'foo' should be removed during this delete."
-      RenderBlock {DIV} at (0,52) size 784x34
-        RenderTable {TABLE} at (0,0) size 30x34 [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 28x32
+      RenderBlock {DIV} at (0,52) size 784x52
+        RenderTable {TABLE} at (0,0) size 30x52 [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 28x50
             RenderTableRow {TR} at (0,2) size 28x22
               RenderTableCell {TD} at (2,2) size 18x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 14x18
                   text run at (2,2) width 14: "fo"
-              RenderTableCell {TD} at (21,11) size 5x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-            RenderTableRow {TR} at (0,26) size 28x4
-              RenderTableCell {TD} at (2,26) size 18x4 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableCell {TD} at (21,26) size 5x4 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+              RenderTableCell {TD} at (21,2) size 5x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableRow {TR} at (0,26) size 28x22
+              RenderTableCell {TD} at (2,26) size 18x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (21,26) size 5x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
 caret: position 2 of child 0 {#text} of child 0 {TD} of child 0 {TR} of child 0 {TBODY} of child 0 {TABLE} of child 2 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/move-by-line-001-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/selection/move-by-line-001-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/selection/move-by-line-001-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -10,18 +10,18 @@
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 784x194 [border: (2px solid #FF0000)]
-        RenderBlock {DIV} at (14,14) size 756x166
-          RenderTable {TABLE} at (0,0) size 64x166 [border: (1px outset #808080)]
-            RenderTableSection {TBODY} at (1,1) size 62x164
+      RenderBlock {DIV} at (0,0) size 784x200 [border: (2px solid #FF0000)]
+        RenderBlock {DIV} at (14,14) size 756x172
+          RenderTable {TABLE} at (0,0) size 64x172 [border: (1px outset #808080)]
+            RenderTableSection {TBODY} at (1,1) size 62x170
               RenderTableRow {TR} at (0,2) size 62x54
                 RenderTableCell {TD} at (2,2) size 58x54 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (13,13) size 32x28
                     text run at (13,13) width 32: "foo"
-              RenderTableRow {TR} at (0,58) size 62x48
-                RenderTableCell {TD} at (2,69) size 58x26 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableRow {TR} at (0,108) size 62x54
-                RenderTableCell {TD} at (2,108) size 58x54 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
+              RenderTableRow {TR} at (0,58) size 62x54
+                RenderTableCell {TD} at (2,58) size 58x54 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableRow {TR} at (0,114) size 62x54
+                RenderTableCell {TD} at (2,114) size 58x54 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                   RenderText {#text} at (13,13) size 31x28
                     text run at (13,13) width 31: "bar"
 caret: position 2 of child 1 {TABLE} of child 1 {DIV} of child 1 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/select-all-004-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/mac/editing/selection/select-all-004-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/mac/editing/selection/select-all-004-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,11 +12,11 @@
       RenderBlock (anonymous) at (74,74) size 600x48
         RenderText {#text} at (0,10) size 54x28
           text run at (0,10) width 54: "Hello"
-      RenderTable {TABLE} at (74,122) size 6x6
-        RenderTableSection {TBODY} at (0,0) size 6x6
-          RenderTableRow {TR} at (0,2) size 6x2
-            RenderTableCell {TD} at (2,2) size 2x2 [r=0 c=0 rs=1 cs=1]
-      RenderBlock (anonymous) at (74,128) size 600x48
+      RenderTable {TABLE} at (74,122) size 6x24
+        RenderTableSection {TBODY} at (0,0) size 6x24
+          RenderTableRow {TR} at (0,2) size 6x20
+            RenderTableCell {TD} at (2,2) size 2x20 [r=0 c=0 rs=1 cs=1]
+      RenderBlock (anonymous) at (74,146) size 600x48
         RenderBR {BR} at (0,10) size 0x28
 selection start: position 1 of child 2 {#text} of body
 selection end:   position 0 of child 5 {BR} of body

Added: trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.png =================================================================== --- trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.png 2018-04-19 05:38:53 UTC (rev 230796) +++ trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.png 2018-04-19 07:10:48 UTC (rev 230797) Property changes on: trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/win/editing/deleting/5126166-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -12,13 +12,13 @@
         RenderTable {TABLE} at (0,0) size 16x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 14x26
             RenderTableRow {TR} at (0,2) size 14x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
         RenderTable {TABLE} at (0,28) size 351x28 [border: (1px outset #808080)]
           RenderTableSection {TBODY} at (1,1) size 349x26
             RenderTableRow {TR} at (0,2) size 349x22
-              RenderTableCell {TD} at (2,11) size 4x4 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (2,2) size 4x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderTableCell {TD} at (8,2) size 339x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 335x18
                   text run at (2,2) width 335: "There should be one empty cell to the left of this one."

Added: trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.png =================================================================== --- trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.png 2018-04-19 05:38:53 UTC (rev 230796) +++ trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.png 2018-04-19 07:10:48 UTC (rev 230797) Property changes on: trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/win/editing/deleting/5206311-1-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -21,12 +21,9 @@
               RenderTableCell {TD} at (16,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (22,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
             RenderTableRow {TR} at (0,26) size 36x22
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,26) size 4x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (22,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
                   text run at (2,2) width 8: "9"
@@ -50,9 +47,7 @@
               RenderTableCell {TD} at (2,26) size 12x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,26) size 12x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (30,26) size 12x22 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
             RenderTableRow {TR} at (0,50) size 44x22
               RenderTableCell {TD} at (2,50) size 12x22 [border: (1px inset #808080)] [r=2 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
@@ -75,9 +70,7 @@
           RenderTableSection {TBODY} at (1,1) size 44x50
             RenderTableRow {TR} at (0,2) size 44x22
               RenderTableCell {TD} at (2,2) size 12x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (16,2) size 12x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (2,2) size 0x18
               RenderTableCell {TD} at (30,2) size 12x22 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 8x18
                   text run at (2,2) width 8: "6"

Added: trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.png =================================================================== --- trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.png 2018-04-19 05:38:53 UTC (rev 230796) +++ trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.png 2018-04-19 07:10:48 UTC (rev 230797) Property changes on: trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/win/editing/deleting/5433862-2-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -15,9 +15,7 @@
               RenderTableCell {TD} at (2,2) size 33x30 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBR {BR} at (6,6) size 0x18
               RenderTableCell {TD} at (37,2) size 32x30 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x18
               RenderTableCell {TD} at (71,2) size 34x30 [border: (1px inset #808080)] [r=0 c=2 rs=1 cs=1]
-                RenderBR {BR} at (6,6) size 0x18
             RenderTableRow {TR} at (0,34) size 107x30
               RenderTableCell {TD} at (2,34) size 33x30 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                 RenderText {#text} at (6,6) size 21x18

Added: trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.png =================================================================== --- trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.png 2018-04-19 05:38:53 UTC (rev 230796) +++ trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.png 2018-04-19 07:10:48 UTC (rev 230797) Property changes on: trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.txt (230796 => 230797)


--- trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.txt	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/LayoutTests/platform/win/editing/deleting/5483370-expected.txt	2018-04-19 07:10:48 UTC (rev 230797)
@@ -8,15 +8,15 @@
           text run at (0,0) width 706: "This tests for a problem where empty table rows after the selection being deleted would be removed incorrectly. "
           text run at (706,0) width 55: "Only the"
           text run at (0,18) width 343: "last letter in 'foo' should be removed during this delete."
-      RenderBlock {DIV} at (0,52) size 784x34
-        RenderTable {TABLE} at (0,0) size 29x34 [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 27x32
+      RenderBlock {DIV} at (0,52) size 784x52
+        RenderTable {TABLE} at (0,0) size 29x52 [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 27x50
             RenderTableRow {TR} at (0,2) size 27x22
               RenderTableCell {TD} at (2,2) size 17x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderText {#text} at (2,2) size 13x18
                   text run at (2,2) width 13: "fo"
-              RenderTableCell {TD} at (21,11) size 4x4 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-            RenderTableRow {TR} at (0,26) size 27x4
-              RenderTableCell {TD} at (2,26) size 17x4 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
-              RenderTableCell {TD} at (21,26) size 4x4 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
+              RenderTableCell {TD} at (21,2) size 4x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+            RenderTableRow {TR} at (0,26) size 27x22
+              RenderTableCell {TD} at (2,26) size 17x22 [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
+              RenderTableCell {TD} at (21,26) size 4x22 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
 caret: position 2 of child 0 {#text} of child 0 {TD} of child 0 {TR} of child 0 {TBODY} of child 0 {TABLE} of child 2 {DIV} of body

Modified: trunk/Source/WebCore/ChangeLog (230796 => 230797)


--- trunk/Source/WebCore/ChangeLog	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/Source/WebCore/ChangeLog	2018-04-19 07:10:48 UTC (rev 230797)
@@ -1,3 +1,28 @@
+2018-04-19  Manuel Rego Casasnovas  <r...@igalia.com>
+
+        Caret rendered at incorrect location inside empty table cell
+        https://bugs.webkit.org/show_bug.cgi?id=85385
+
+        Reviewed by Zalan Bujtas.
+
+        This is based on a previous patch by Shezan Baig <shezbaig...@gmail.com>.
+
+        This fixes the position of the caret in empty cells,
+        that was painted lower than expected
+        (and then modified when you start to edit the cell).
+
+        Ensures that editable table cells have at least one line when
+        they are laid out. This ensures that the cell's intrinsic before/after
+        padding is calculated correctly, which results in the caret location
+        being calculated correctly.
+
+        Test: editing/caret/caret-in-empty-cell.html
+
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::hasLineIfEmpty): Override method to consider
+        that it has an an empty line if the table cell is editable.
+        * rendering/RenderTableCell.h:
+
 2018-04-18  Daniel Bates  <daba...@apple.com>
 
         Cleanup TextControlInnerElements

Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (230796 => 230797)


--- trunk/Source/WebCore/rendering/RenderTableCell.cpp	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp	2018-04-19 07:10:48 UTC (rev 230797)
@@ -1380,4 +1380,12 @@
     return RenderTableCell::createTableCellWithStyle(parent.document(), parent.style());
 }
 
+bool RenderTableCell::hasLineIfEmpty() const
+{
+    if (element() && element()->hasEditableStyle())
+        return true;
+
+    return RenderBlock::hasLineIfEmpty();
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/RenderTableCell.h (230796 => 230797)


--- trunk/Source/WebCore/rendering/RenderTableCell.h	2018-04-19 05:38:53 UTC (rev 230796)
+++ trunk/Source/WebCore/rendering/RenderTableCell.h	2018-04-19 07:10:48 UTC (rev 230797)
@@ -199,6 +199,8 @@
     void nextSibling() const = delete;
     void previousSibling() const = delete;
 
+    bool hasLineIfEmpty() const final;
+
     // Note MSVC will only pack members if they have identical types, hence we use unsigned instead of bool here.
     unsigned m_column : 25;
     unsigned m_cellWidthChanged : 1;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to