Closed
Bug 264914
Opened 20 years ago
Closed 20 years ago
[FIX]Refactor frame constructor code for adding kids to child lists
Categories
(Core :: Layout, defect, P1)
Core
Layout
Tracking
()
RESOLVED
FIXED
mozilla1.8alpha5
People
(Reporter: bzbarsky, Assigned: bzbarsky)
References
Details
Attachments
(6 files, 3 obsolete files)
|
236 bytes,
text/html
|
Details | |
|
289 bytes,
text/html
|
Details | |
|
637 bytes,
text/html
|
Details | |
|
136 bytes,
text/html
|
Details | |
|
262 bytes,
text/html
|
Details | |
|
70.17 KB,
patch
|
roc
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
Right now, various places in the frame constructor have to explicitly add the new kids to the containing block's child list. If they mess this up, things like bug 263846 happen. In my opinion, what should happen is that when a containing block is popped, any pending kids are added to its child list by the frame constructor state. When pushing a containing block, code should specify whether it's ok to call SetInitialChildList() (if the containing block is newly created, basically), or whether InsertOutOfFlow() should be used. The goal is to be able to push a containing block and then forget about it, basically, and have the frame constructor state do the right thing. Marking dependant on bug 263406 because this touches the same code, so I can't really work on this till that patch is checked in.
| Assignee | ||
Updated•20 years ago
|
Priority: -- → P1
Target Milestone: --- → mozilla1.8alpha5
| Assignee | ||
Comment 1•20 years ago
|
||
| Assignee | ||
Comment 2•20 years ago
|
||
| Assignee | ||
Comment 3•20 years ago
|
||
| Assignee | ||
Comment 4•20 years ago
|
||
This really shouldn't change behavior, with the exception of the one place where absolute/fixed items were not being handled (there was an XXX comment to that effect).
| Assignee | ||
Comment 5•20 years ago
|
||
| Assignee | ||
Comment 6•20 years ago
|
||
Attachment #163601 -
Attachment is obsolete: true
| Assignee | ||
Comment 7•20 years ago
|
||
| Assignee | ||
Comment 8•20 years ago
|
||
Slightly simpler code, with kinks worked out a bit.
| Assignee | ||
Updated•20 years ago
|
Attachment #163598 -
Attachment is obsolete: true
| Assignee | ||
Comment 9•20 years ago
|
||
Attachment #163618 -
Attachment is obsolete: true
| Assignee | ||
Comment 10•20 years ago
|
||
Comment on attachment 163647 [details] [diff] [review] Tested and all roc, could you review? Basic summary of changes: 1) Store the frame list we're working with and a pointer to the frame constructor state in the save state. 2) Automatically process frame insertions when the save state is destroyed or when the frame constructor state is destroyed. 3) Remove some unused code in ConstructHTMLFrame, set things to be float/absolute containing blocks when they are. This fixes the rel pos button testcase attached to this bug. 4) Fix nsButtonControlFrame to properly handle insertion of out-of-flow kids, since it can have them 5) Minor cleanup like not passing aPresContext to PushAbsoluteContainingBlock and so forth. I should probably file a separate bug on the XXX comment I added to AdjustOutOfFlowParentPtrs....
Attachment #163647 -
Flags: superreview?(roc)
Attachment #163647 -
Flags: review?(roc)
| Assignee | ||
Comment 11•20 years ago
|
||
Oh, I should mention that this passes the regression tests just fine.
Summary: Refactor frame constructor code for adding kids to child lists → [FIX]Refactor frame constructor code for adding kids to child lists
Comment on attachment 163647 [details] [diff] [review] Tested and all This looks fantastic. Great work.
Attachment #163647 -
Flags: superreview?(roc)
Attachment #163647 -
Flags: superreview+
Attachment #163647 -
Flags: review?(roc)
Attachment #163647 -
Flags: review+
| Assignee | ||
Comment 13•20 years ago
|
||
Patch checked in; no performance impact, thankfully. I've checked in the testcase this patch fixed into the regression tests, filed bug 266971 on floats in {ib} splits, and filed bug 266968 on the "testcase that's currently broken".
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Updated•6 years ago
|
Product: Core → Core Graveyard
Updated•6 years ago
|
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
You need to log in
before you can comment on or make changes to this bug.
Description
•