I thought we had a bug on this, but I can't find one.
The CSS spec says that any element with position:relative can be a containing block for absolutely positioned elements. We don't currently support this, since only block and inline frames currently support being an absolute positioning containing block.
We should figure out a way to allow all frames to be absolute positioning containing blocks.
I guess this does not have a chance for Firefox 4, but what about the next release?
I think the best path to fixing this is perhaps something like:
(1) add a codepath for dynamic recomputation of overflow areas without reflow (this is also really useful for a bunch of performance optimizations)
(2) store all absolutely positioned frames in a frame property (probably always on the first continuation), and in DidReflow of *any* continuation of a frame with such a property (probably also needs a frame state bit to be transferred to all continuations), record (in the reflow state?) that we need to reflow the absolute frames when we're done reflowing the deeper of (a) the nearest common ancestor of all the continuations of the frame or (b) the reflow root.
(In reply to comment #0)
> I thought we had a bug on this, but I can't find one.
is this related to bug 63895?
*** Bug 655591 has been marked as a duplicate of this bug. ***
Ehsan is working on this in bug 10209.
The infrastructure for this has landed in bug 10209. I'll look into using this infrastructure for the remaining types in the future.