Open Bug 68947 Opened 24 years ago Updated 3 years ago

we should set flags during reflow about containers

Categories

(Core :: Layout, defect)

defect

Tracking

()

People

(Reporter: buster, Unassigned)

References

Details

(Keywords: perf)

There is code in layout to walk up the parent list to find out if a child is in a certain kind of container. We should remove this code (in fact, it looks like nsTableFrame::IsNested is unused dead code) and replace it with a bitfield in nsHTMLReflowState where each bit corresponds to an interesting container type. Three uses off the top of my head: 1. nsTableFrame would set it so all child content would know it was inside a table (nsTableFrame::IsNested, or whatever replaced it) 2. nsTextControlFrame would set it so child content could optimize incremental reflows (nsBlockFrame::IsIncrementalDamageConstrained). 3. combo boxes could probably have a similar optimization. This could be used in conjunction with the ideas we have for propagating a bit up in the nsHTMLReflowMetrics that told the parent whether anything had changed or not.
*** Bug 68967 has been marked as a duplicate of this bug. ***
Accepting and moving to just past Mozilla 0.9 - I may be able to address sooner, but not likely.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9.1
Performance issue: moving off to Mozilla 1.0 to make room for stability issues
Keywords: perf
OS: Windows NT → All
Priority: -- → P3
Hardware: PC → All
Target Milestone: mozilla0.9.1 → mozilla1.0
Target Milestone: mozilla1.0 → mozilla1.2
.
Assignee: attinasi → misc
Status: ASSIGNED → NEW
Component: Layout → Layout: Misc Code
Priority: P3 → --
QA Contact: petersen → nobody
Target Milestone: mozilla1.2alpha → ---
Note that nsBlockFrame::IsIncrementalDamageConstrained has been replaced by the REFLOW_ROOT frame flag, looks like. The IsNested() code in tables is alive and well, however. Does that one use justify these reflow flags? Or are there other proposed uses?
Assignee: layout.misc-code → nobody
QA Contact: nobody → layout.misc-code
Product: Core → Core Graveyard
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.