aFilter is useful for determining if a frame should output itself during
a List(). In any event, the children of the frame are always processed.
added nsIListFilter, an interface for any object that wants to act like a filter for frame dumps
added static NS_LAYOUT nsIListFilter * GetFilter(nsString *aFilterName);
currently, only TableListFilter implements nsIListFilter.
in response to List(...TableListFilter), the frame model is dumped in a way that is useful
for table layout regression testing. Currently this is controlled by command line switches on the viewer app.
fixed the following bugs: 312653 312656 312655
the fixes were:
1. cells now inherit their bgcolor from the row, if available. This is the
Nav4 way of drawing row bgcolor, rather than having the row paint its own bgcolor. (Troy, I intend to make this conditional
based on the compatibility mode)
2. colspans across cols that are all specified width no longer try to proportionately
divide the width of the span between the cols. see http://www.city.net (now it's really fixed, without breaking nested tables in
constrained situations.) A happy side effect is nested tables in general behave better when constrained.
3. min table sizes are fixed, so min width changes to content now effect the
table correctly during incremental reflow. This fixes the table layout portion of the bugs on the http://www.aol.com/corp tree.
Rick will check in the other half of this fix soon. Until then, don't expect to see much improvement.
4. fixed bug 312799. Table cell now always reserve at least the maxElementSize
of its content, fixing problems when desiredSize<maxElementSize
(a nested table with specified width) inside (an auto-width column)
inside (a specified-width table). Got that?
The problem was that we we not setting state correctly during incremental reflow
when the image returned its proper metrics after giving default metrics that
were for its ALT text.
for nonsense COLSPANs at the edge of a table. Fixed some bugs this uncovered
where the cell was being asked for its colspan attribute rather than the table
being asked for the cell's effective col span.
* fixed more margin code. we're inching towards correctness.
* the width contributed by a colspanning cell is now proportionately distributed to the columns based on the columns "effective width"
* added logic for handling illegal COLS attribute on a table (like COLS=4 in a 3-column table). See nsTableFrame::GetEffectiveCOLSAttribute()
* added logic for handling illegal COLSPAN attribute on a cell (like COLSPAN=4 in a 3-column table). See nsTableFrame::GetEffectiveColSpan(). This is wrong, and will get reworked soon.
* added the ability for cell width attributes to effect column width like Nav4.
added backwards compatibility for percent width tables inside of auto width tables (see http://webreview.com/wr/pub warning: you'll have to look at a local copy until
Troy/Vidur/somebody fixes an image problem.)
this work exposed a few bugs and slow spots, which have been fixed
for the aol page, I added some additional backwards compatibility code
to proportionately distribute width when a fixed-width cell has colspans
1. cellmap couldn't properly delete CellData because definition was unavailable
2. optimized table cells made taller wouldn't shrink when they should because we were not
remembering the previous desired height of the cell.
3. rows were placing cells on the left edge, and not adding in the left margin.
from the prior available width. Some real-world test cases sped up
1-2 orders of magnitude for resize reflow. Initial reflow is unchanged because
we still need to get pass1 metrics on all content.
fixed nsCSSBlockFrame.cpp to take margins into account when computing parent's available width
fixed distribution of excess space to table cells when table is bigger than the content it holds.
not quite finished yet, but better.
of subsequent cells in reflow pass 1
we correctly distribute extra space in a table proportionately.
We try to give the extra space to auto-width columns first,
and if there are none we distribute it to all columns.
The percentage is based on the cell content's desired size.