Commit b6fb8f9a authored by Aleks Totic's avatar Aleks Totic Committed by Commit Bot

[Layout] Fix clusterfuzz DCHECK

We were hitting
DCHECK(HasSetAbsoluteColumnIndex());
when recalculating borders.

Cells do not have AbsoluteColumnIndex set when section needs
cell recalc. Fix is to make section recalc if needed
before computing borders. I am not sure if this will have
any performance implications...

Clusterfuzz is quite elaborate. Several steps are involved in
triggering the bug:
- set needs_cell_recalc on section
- without triggering layout on section, cause child to ask section's
cell to compute its borders.

Figuring a reduced test case would take about a day.
Considering that I am working on eliminating this code completely,
and that this bug has been around forever, I think no test case
is ok.

Bug: 999861
Change-Id: Ia1abcd23646fd534d740ece6d9cae52cf101829e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796570Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Reviewed-by: default avatarDavid Grogan <dgrogan@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695847}
parent 76908bd7
......@@ -1061,6 +1061,8 @@ void LayoutTableCell::UpdateCollapsedBorderValues() const {
}
} else {
Table()->InvalidateCollapsedBordersForAllCellsIfNeeded();
if (Section())
Section()->RecalcCellsIfNeeded();
if (collapsed_border_values_valid_)
return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment