Move some grid container frame's overflow-list helper function to nsContainerFrame
Categories
(Core :: Layout, task, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox77 | --- | fixed |
People
(Reporter: TYLin, Assigned: TYLin)
References
Details
(Whiteboard: [layout:backlog:77])
Attachments
(3 files)
In this bug, I'm planning to move some helper functions that manipulate overflow lists in nsGridContainerFrame
to nsContainerFrame
. I find these helpers are not tailored specifically for grid layout, but are general enough to be useful when implementing flex item fragmentation.
Assignee | ||
Comment 1•4 years ago
|
||
We have duplicated ReparentFrame and ReparentFrames define in both
nsBlockFrame and nsGridContainerFrame. We should move them into
nsContainerFrame.
Assignee | ||
Comment 2•4 years ago
|
||
We can utilize these helpers to implement flex item fragmentation.
Depends on D68490
Assignee | ||
Comment 3•4 years ago
|
||
I left all the bits that related to grid container, such as setting
aStatus, NS_STATE_GRID_DID_PUSH_ITEMS, and aState.mIter in
nsGridContainerFrame::ReflowRowsInFragmentainer().
Depends on D68491
Assignee | ||
Comment 4•4 years ago
|
||
I also want to move nsGridContainerFrame::NormalizeChildLists() to nsContainerFrame
, because I think we need this function when the flex container has been fragmented, and we are reflow again from its first-in-flow. However, this function sets some grid specific bits like NS_STATE_GRID_DID_PUSH_ITEMS
, NS_STATE_GRID_HAS_CHILD_NIFS
, and mDidPushItemsBitMayLie
, and I'm not sure how to generalize it yet. One possible way could be defining the same bits in the flex container, and restrict the function to be used by only grid and flex.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 5•4 years ago
|
||
To be clear, the patch for moving nsGridContainerFrame::NormalizeChildLists()
to nsContainerFrame
(described in comment 4) will be done either in bug 1622935 or a separate bug. The three parts already attached are ready for the review.
Pushed by aethanyc@gmail.com: https://hg.mozilla.org/integration/autoland/rev/fd847fbe1a51 Part 1 - Move ReparentFrame and ReparentFrames into nsContainerFrame. r=mats https://hg.mozilla.org/integration/autoland/rev/49bf43d18337 Part 2 - Move some helpers manipulating overflow lists from nsGridContainerFrame to nsContainerFrame. r=mats https://hg.mozilla.org/integration/autoland/rev/07d0377a5002 Part 3 - Extract grid container's PushIncompleteChildren logic, and move it to nsContainerFrame. r=mats
Comment 7•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fd847fbe1a51
https://hg.mozilla.org/mozilla-central/rev/49bf43d18337
https://hg.mozilla.org/mozilla-central/rev/07d0377a5002
Description
•