I'm giving up on my attempts to fix most of the bugs in vertical margins on blocks. My changes are doing things that I didn't expect them to do, and I just don't have the energy to look at this code anymore to figure out why not. The original changes were better in terms of correctness but crashed in some cases (e.g., tinderbox popups). The #if 0 code shows my original changes. I will attach the changes that I am currently removing from my tree. I will attempt to pull the one or two easy fixes out of these changes and try and get them checked in. However, the margin code has serious problems and I don't understand the block code well enough to fix them.
The changes here basically fix bug 50142 and bug 44242. There are also other related MARGIN-C bugs, some of which are compat issues that are less important once we have released and set a precedent. Some of those compat issues may be fixed by these changes (or an improvement of these changes) as well.
dbaron, which bugs did you try to fix but failed (i.e. which other bugs would this fix apart from bugs 44242,50142)?
Is anyone else here willing to pick these changes up and run with them? I'm currently trying to get involved with fixing layout bugs, but I've got a bunch of learning to do first before I can really help fix bugs of this scope.
Taking back. Part of what the original rewrite did, plus other things, is being done for bug 86947.
Has there been any progress in the meantime?
So roc rewrote them again more recently, regressing performance significantly, and I think we need another rewrite, so this is still valid.