Make the line list doubly linked and access it through a list class and iterators.
Stop recomputing margins on all of the children of each block in the reflow chain (which causes O(N^2) state recovery during incremental reflow). Instead, add a second dirty bit to the lines and walk backwards through the line list to recompute vertical margins only when either dirty bit is set and the previous line was not reflowed. Add nsIFrame::IsEmpty to identify frames through which margins collapse.
Fix O(N^2) propagation of float damage by maintaining a set of intervals damaged by floats (bug 61962) and be sure to damage the correct areas (bug 48138).
Introduce nsCollapsingMargin to do correct collapsing of combinations of positive and negative margins (bug 50142).
Clean up some odds and ends and fix another smaller O(N^2) problem in nsBlockFrame::AddFrames.
r=attinasi, rbs sr=waterson
git-svn-id: svn://10.0.0.236/trunk@106224 18797224-902f-48f8-a5cc-f745e15eee43
if you want a line iterator for navigation you must explicitly ask for one.
git-svn-id: svn://10.0.0.236/trunk@70013 18797224-902f-48f8-a5cc-f745e15eee43
fix for bug# 29785, keyboard navigation of tables in editor
not completely fixed, tables with row|column span do not navigate correctly
git-svn-id: svn://10.0.0.236/trunk@69124 18797224-902f-48f8-a5cc-f745e15eee43