Open Bug 834097 Opened 12 years ago Updated 3 years ago

Simplify nsOverflowContinuationTracker frame list handling

Categories

(Core :: Layout: Block and Inline, defect)

20 Branch
x86_64
Linux
defect

Tracking

()

People

(Reporter: MatsPalmgren_bugz, Unassigned)

Details

nsOverflowContinuationTracker can point to either the ExcessOverflowContinuations list or the OverflowContinuations on the next-in-flow (stored in mParent). This seems overly complicated. I think it would be simpler to always add the frames to the ExcessOverflowContinuations list and then the next-in-flow can drain that at the start of its ReflowOverflowContainerChildren.
fantasai, would this be possible? Were there any particular reasons you chose the current design?
Flags: needinfo?(fantasai.bugs)
The reason for the current design was to maintain the proper ordering of overflow continuation frames. The draining model used for overflowing frames in the flow works fine as long as the frames on the overflow list are guaranteed to be before the frames already in the next-in-flow. However, this is not true for overflow continuations. Let me know if that answers your question...
Flags: needinfo?(fantasai.bugs)
Example of why the current model is used: Imagine block frames A, B, and C exist on page 1. A and C have overflow that spills onto page 2, so page two has A' and C' in its list. We reflow a second time because someone added content to B. B now also overflows, so we need to add B' to page 2. B' needs to be between A' and C' in page 2's overflow continuation list. If we put it in page 1's overflow list and drained it onto the top of page 2, the ordering would be B', A', C' instead of A', B', C'.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.