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

clusterfuzz OrtogonalChild fix

Another subtle bug related to adjusting table cells writing mode.

The problem is that Layout code keep track of orthogonal LayoutBoxes.
This list must be kept in sync after cell changes its writing mode.

Previous fix took care of keeping track of table cell, but did
not consider table cell's children.

Table cell's children could either become a root, or stop being
a root.

This fix updates the root state of table cell's children.

Thank you clusterfuzz!

Bug: 1124997
Change-Id: If8c123ba3172f505ea1dc2494a7b53c4a7290e9d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2393618
Auto-Submit: Aleks Totic <atotic@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804707}
parent 28159084
......@@ -447,6 +447,17 @@ void LayoutTableCell::UpdateStyleWritingModeFromRow(const LayoutObject* row) {
LayoutObject::ApplyStyleChanges::kNo);
SetHorizontalWritingMode(StyleRef().IsHorizontalWritingMode());
UnmarkOrthogonalWritingModeRoot();
for (LayoutObject* child = FirstChild(); child;
child = child->NextSibling()) {
if (child->IsBox()) {
LayoutBox* box_child = ToLayoutBox(child);
if (box_child->IsOrthogonalWritingModeRoot())
box_child->MarkOrthogonalWritingModeRoot();
else
box_child->UnmarkOrthogonalWritingModeRoot();
}
}
}
void LayoutTableCell::StyleDidChange(StyleDifference diff,
......
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