Open Bug 1883699 Opened 7 months ago Updated 2 months ago

Rewrite table percent bsize code to work more like grid / flexbox.

Categories

(Core :: Layout: Tables, task, P2)

task

Tracking

()

People

(Reporter: emilio, Assigned: emilio, NeedInfo)

References

(Blocks 6 open bugs)

Details

Quoting from matrix for reference. My understanding is that the table code is doing something very similar to grid / flex:

  • We need the "desired" bsize of the table cells to compute the row heights.
  • But once we know that, we have a "final" row bsize that we need to propagate to all cells.
  • So to do it in general, we'd need two reflows. The "special bsize reflow" is basically trying to optimize out one of them if there are no percentage bsizes.

Reason for me looking into this is that the fundamental issue with https://bugzilla.mozilla.org/show_bug.cgi?id=1877719 is that vertical alignment doesn't work for scrollable table cells. To make overflow work on table cells sanely, we'd need to make the scrollframe take all the space of the cell. But that's basically a relative bsize, so doing that the naive way will break all this "special bsize reflow" optimization mess.

So I think I want to change tables to work more like grid / flex (so, cache their "measuring" reflow metrics, and avoid that measuring reflow when the cache is still valid).

Daniel pointed out that doing this will most likely help with / fix bug 1725781.

Flags: needinfo?(emilio)
Blocks: 1883872
Blocks: 1883357
Flags: needinfo?(emilio)
Flags: needinfo?(emilio)
Blocks: 1461852
Flags: needinfo?(emilio)
Flags: needinfo?(emilio)
Blocks: 1897995
No longer blocks: 1877719
See Also: → 1877719
No longer blocks: 1897995
See Also: → 1897995
You need to log in before you can comment on or make changes to this bug.