Created attachment 355507 [details] minimised testcase The 'reply' textarea in the mozillazine forums drops below the floated block containing the 'smilies' samples. The textarea on those pages has a width:100% declared, which makes it 2px wider than the parent block (due to the border of the textarea). regressed: Fails: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090104 Minefield/3.2a1pre (tinderbox hourly build, 17:42) http://hg.mozilla.org/mozilla-central/rev/496e0cb5c943 Works Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090104 Minefield/3.2a1pre http://hg.mozilla.org/mozilla-central/rev/9f497b1505d2 http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=9f497b1505d2&tochange=496e0cb5c943 --> 191448
I wrote a bunch of tests (layout/reftests/floats/other-float-outside-*) to test issues related to this type of situation, but it seems they weren't sufficient. I suppose they all test it based on the mBandHasFloats checks in nsBlockReflowState::CanPlaceFloat, and this case is related to the mBandHasFloats check in nsBlockReflowState::ClearFloats. I'll investigate further...
It turns out those tests weren't doing what I thought they were because I had a ":" where I should have had a ";". (That actually fits; the result surprised me, but I just implemented it anyway.)
Created attachment 355666 [details] [diff] [review] patch Fixes my bad tests, adds attachment 355507 [details] to reftest, and fixes nsFloatManager to be compatible with nsSpaceManager (although not necessarily correct, but I think compatible with other browsers). Full reftests pass.
verified with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090107 Minefield/3.2a1pre Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2a1pre) Gecko/20090107 Minefield/3.2a1pre
Landed on 1.9.1 along with the patch that caused the regression: http://hg.mozilla.org/releases/mozilla-1.9.1/rev/796feafea6b8