Open Bug 86950 Opened 24 years ago Updated 2 years ago

make floats not require state recovery

Categories

(Core :: Layout: Floats, task, P3)

task

Tracking

()

Future

People

(Reporter: dbaron, Unassigned)

References

Details

(Keywords: perf, Whiteboard: [whitebox])

Right now we create and destroy space managers during each reflow (for every frame that could possibly need a space manager). This leads to O(N^2) state recovery for an incremental reflow. This seems complicated to fix, but some thoughts on how it could be done are: * store the frame that would have the space manager in the reflow state rather than (or in addition to) the space manager itself, and store the space manager for the lifetime of the frame tree as a property of the frame, but only for frames that actually contain floats. * (the hard part, perhaps) Keep the space manager updated when things change between reflows
Blocks: 78911
Status: NEW → ASSIGNED
Priority: -- → P2
Target Milestone: --- → mozilla0.9.3
Depends on: 90725
Target Milestone: mozilla0.9.3 → mozilla0.9.4
Target Milestone: mozilla0.9.4 → mozilla0.9.5
Note that the float damage stored by the space manager (see bug 86947) must be cleared each reflow, or perhaps maintained separately from the space manager.
Target Milestone: mozilla0.9.5 → mozilla0.9.6
Target Milestone: mozilla0.9.6 → mozilla0.9.7
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Keywords: perf
Blocks: 114584
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Target Milestone: mozilla0.9.9 → Future
This one has a huge impact on performance (just see the dependency-tree).
Keywords: nsbeta1
Why do you say it's huge? My memory is that it's one of the smaller of the remaining O(N^2) issues with loading long pages incrementally.
Well, you know this best. Which are the big killers (bugs) you'd say?
QA Contact: petersen → praveenqa
Component: Layout → Layout: Floats
Whiteboard: [whitebox]
QA Contact: praveenqa → dsirnapalli
Flags: blocking1.4?
adt: nsbeta1-
Keywords: nsbeta1nsbeta1-
Flags: blocking1.4? → blocking1.4-
Blocks: 226737
Blocks: 121330
QA Contact: dsirnapalli → layout.floats
Moving to p3 because no activity for at least 2 years. See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3
Assignee: dbaron → nobody
Status: ASSIGNED → NEW
QA Whiteboard: qa-not-actionable
Severity: major → S3
Type: defect → task
You need to log in before you can comment on or make changes to this bug.