Properly mark cell's children as needing layout.

When a cell is spanning a collapsed row, it may get clipped. When the
row is then uncollapsed, the cell's children need to be laid out again.
Before, CellWidthChanged() determined whether the cell's children
needed layout. Now, CellWidthChanged() has been more accurately renamed
to CellChildrenNeedLayout().

Bug: 753515
Change-Id: Ic138066b8e2b4a96deba4e67c28348ae211ec7c0
Reviewed-on: https://chromium-review.googlesource.com/610894
Commit-Queue: Joy Yu <joysyu@google.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
WPT-Export-Revision: 8d9cb4f49cd93e76a0484b266a51c6a1941a67a2
diff --git a/css/css-tables-3/visibility-collapse-rowspan-crash.html b/css/css-tables-3/visibility-collapse-rowspan-crash.html
new file mode 100644
index 0000000..977c3a0
--- /dev/null
+++ b/css/css-tables-3/visibility-collapse-rowspan-crash.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="author" title="Joy Yu" href="mailto:joysyu@mit.edu">
+<link rel="help" href="https://drafts.csswg.org/css-tables-3/#visibility-collapse-cell-rendering">
+<h1>Visibility collapse</h1>
+<a href="https://drafts.csswg.org/css-tables-3/#computing-the-table-width">Spec</a>
+<p>
+When a row is collapsed, a cell spanning the row may get clipped. When the row is then uncollapsed,
+the browser should not crash because the cell's children should be correctly updated and laid out.
+</p>
+<table>
+  <tr>
+    <td><div style="width: 10px; height: 10px"></div></td>
+    <td rowspan="2">
+      <div style="outline: 1px solid cyan">
+        Overflow Overflow Overflow</div>
+    </td>
+  </tr>
+  <tr id="rowToCollapse">
+    <td><div style="width: 10px; height: 10px"></div></td>
+  </tr>
+</table>
+
+<script>
+    test(() => {
+    row = document.getElementById("rowToCollapse");
+    row.style.visibility = "collapse";
+    step_timeout(function(){ row.style.visibility = "visible"; }, 500);
+    }, "No crash or assertion failure. crbug.com/753515");
+</script>
\ No newline at end of file