The empty cell row=3 col=1 changed but not invalidated.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb commit 0391059128167dc8dc8fdbcbc7d3e3b81b7edefb Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Tue May 09 03:49:28 2017 Fix LayoutTableRow::AddOverflowFromCell() This fixes the following problems: 1. Incorrect offset of contents overflow from cell: This was changed in https://codereview.chromium.org/2786463004 Both the old version and the new version are incorrect: Should adjust by the difference of locations of row and cell. 2. Missing cell overflow propagating to row when the cell doesn't span rows. 3. Checking of HasBackground made row's visual overflow depend on the existence of background. Just remove the check to avoid tricky logic which otherwise would be required to invalidate row's overflow on background existence change. 4. Cell generates not only visual overflow, but also layout overflow (e.g. when there is a relative-positioned child). This fix doesn't change behavior because row doesn't use the layout overflow. However, this makes it possible to optimize LayoutTableSection:: ComputeOverflowFromCell() to just accumulate overflows from rows instead of all cells. The optimization will be in the next CL. BUG= 719106 , 603993 , 646015 R=wkorman@chromium.org Review-Url: https://codereview.chromium.org/2861653006 . Cr-Commit-Position: refs/heads/master@{#470166} [modify] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/LayoutTests/TestExpectations [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table-expected.html [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table.html [add] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell-expected.html [add] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell-expected.txt [add] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell.html [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/7f0b7f49f8d74428d8aa688576307738801689ac/third_party/WebKit/LayoutTests/platform/win7/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [modify] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp [modify] https://crrev.com/0391059128167dc8dc8fdbcbc7d3e3b81b7edefb/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/00be1dbf48663cdc4d867913f9420d2500c73c10 commit 00be1dbf48663cdc4d867913f9420d2500c73c10 Author: wangxianzhu <wangxianzhu@chromium.org> Date: Thu May 11 22:37:33 2017 Fix LayoutTableRow::AddOverflowFromCell() This fixes the following problems: 1. Incorrect offset of contents overflow from cell: This was changed in https://codereview.chromium.org/2786463004 Both the old version and the new version are incorrect: Should adjust by the difference of locations of row and cell. 2. Missing cell overflow propagating to row when the cell doesn't span rows. 3. Checking of HasBackground made row's visual overflow depend on the existence of background. Just remove the check to avoid tricky logic which otherwise would be required to invalidate row's overflow on background existence change. 4. Cell generates not only visual overflow, but also layout overflow (e.g. when there is a relative-positioned child). This fix doesn't change behavior because row doesn't use the layout overflow. However, this makes it possible to optimize LayoutTableSection:: ComputeOverflowFromCell() to just accumulate overflows from rows instead of all cells. The optimization will be in the next CL. BUG= 719106 , 603993 , 646015 R=wkorman@chromium.org TBR=wangxianzhu@chromium.org NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2861653006 . Cr-Original-Commit-Position: refs/heads/master@{#470166} Review-Url: https://codereview.chromium.org/2880663002 Cr-Commit-Position: refs/branch-heads/3071@{#520} Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641} [modify] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/LayoutTests/TestExpectations [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table-expected.html [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/paint/invalidation/hover-invalidation-table.html [add] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell-expected.html [add] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell-expected.txt [add] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/LayoutTests/paint/invalidation/table/row-change-background-rowspan-cell.html [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/platform/mac-mac10.11/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [delete] https://crrev.com/37b22ee298b3cde4c44ffc5ab83449c26b0dfe59/third_party/WebKit/LayoutTests/platform/win7/virtual/disable-spinvalidation/paint/invalidation/hover-invalidation-table-expected.txt [modify] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp [modify] https://crrev.com/00be1dbf48663cdc4d867913f9420d2500c73c10/third_party/WebKit/Source/core/layout/LayoutTableRowTest.cpp
Comment 1 by bugdroid1@chromium.org
, May 9 2017