Closed Bug 1421105 Opened 7 years ago Closed 6 years ago

Implement column-span for block and inline frames

Categories

(Core :: Layout: Columns, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: neerja, Assigned: TYLin)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

Attachments

(5 files, 9 obsolete files)

(deleted), text/x-phabricator-request
dbaron
: review+
Details
(deleted), text/x-phabricator-request
dbaron
: review+
Details
(deleted), text/x-phabricator-request
dbaron
: review+
Details
(deleted), text/x-phabricator-request
dbaron
: review+
Details
(deleted), text/x-phabricator-request
Details
No description provided.
Priority: -- → P3
Attachment #8932291 - Flags: review?(dbaron)
Attachment #8932292 - Flags: review?(dbaron)
Attachment #8932293 - Flags: review?(dbaron)
Attachment #8932294 - Flags: review?(dbaron)
The try run here is clean except for: https://treeherder.mozilla.org/#/jobs?repo=try&revision=08578188bb28a1d7496bc542b9f8e21641d38173&selectedJob=148989354 1. Failures that need to be marked as expected assertions in crashtest.list - /layout/base/crashtests/788360.html /layout/generic/crashtests/621424-1.html (More details on why this is justified will be along with patches for this, coming separately) 2. Failures unreproducible on local Mac/Linux debug builds - /layout/generic/crashtests/1368617-1.html /layout/mathml/crashtests/151054-1.xml These assertions fail consistently on try but are not reproducible on my Mac or Linux machine. I am going to try and and figure out a loaner machine/One-click loaner to see if I can reproduce them there but I don't think this one problem should delay the review so putting in the review request.
Blocks: column-span
No longer depends on: 1418029
Attachment #8932294 - Flags: review?(dbaron)
This definitely depends on bug 1346983 since it uses the class introduced there, and I think it also depends on bug 1418029 (but please correct me if I'm wrong).
Blocks: 1346983, 1418029
No longer blocks: 1346983, 1418029
Depends on: 1346983, 1418029
Since changing the patches for Bug 1346983 to let ColumnSetWrapper inherit from nsBlockFrame instead of nsContainerFrame, the following tests are failing on try - multicol-nested-margin-002.xht column-balancing-nested-001.html Another known issue here is that currently only one ColumnSetFrame is allowed inside a ColumnSetWrapper for the purpose of its size calculation. When Bug 1411422 is fixed, this size calculation of all children of ColumnSetWrapper must be changed as well. Part7 here addresses part of this problem.
No longer depends on: 1346983
Depends on: 1346983
Assignee: neerjapancholi → aethanyc
Status: NEW → ASSIGNED
Component: Layout → Layout: Columns
Blocks: 1489295
Blocks: 1489298
This helper will also be used in next part.
Other frames calling InitAndWrapInColumnSetFrameIfNeeded() needs to be modified to support column-span (bug 1489295). Depends on D5208
Reframe the whole multi-column subtree if any element is added or removed in it. Depends on D5209
This fixed contain-size-multicol-002.html and contain-size-multicol-003.html after enabling "column-span". We need to enable "contain" property unconditionally in UA stylesheets so that "contain: inherit" is always recognized in ua.css whenever the preference is flipped dynamically during reftest. Depends on D5210
This enables "column-span" for our style system tests and web platform tests only. Depends on D5211
Summary: Change frame construction to handle the splitting of ColumnSetFrames when spanners are found. → Implement column-span for block and inline frames
Comment on attachment 9007072 [details] Bug 1421105 Part 1 - Add a helper IsColumnContainerStyle() to StyleColumn. David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 has approved the revision.
Attachment #9007072 - Flags: review+
Blocks: 1491727
Blocks: 1491915
Attachment #9007076 - Attachment description: Bug 1421105 Part 5 - Enable CSS column-span for unit tests, and update test expectations. → Bug 1421105 Part 5 - Enable CSS column-span for individual web-platform-tests, and update test expectations.
Attachment #9007076 - Attachment description: Bug 1421105 Part 5 - Enable CSS column-span for individual web-platform-tests, and update test expectations. → Bug 1421105 Part 5 - Enable CSS column-span in UA stylesheet, and update test expectations.
Blocks: 1494100
Attachment #9007075 - Attachment is obsolete: true
Attachment #9007076 - Attachment description: Bug 1421105 Part 5 - Enable CSS column-span in UA stylesheet, and update test expectations. → Bug 1421105 Part 4 - Enable CSS column-span in UA stylesheet, and update test expectations.
Is there a followup bug filed per https://phabricator.services.mozilla.com/D5210#140333 ?
Flags: needinfo?(aethanyc)
(In reply to David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 from comment #61) > Is there a followup bug filed per > https://phabricator.services.mozilla.com/D5210#140333 ? No, but I have rewritten the patch so that it doesn't always reframe multicol container whenever there's a change in the column subtree. I'll file a followup if there are still performance issues in the patch that need to be addressed later.
Flags: needinfo?(aethanyc)
Comment on attachment 9007076 [details] Bug 1421105 Part 4 - Enable CSS column-span in UA stylesheet, and update test expectations. David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 has approved the revision.
Attachment #9007076 - Flags: review+
Comment on attachment 9007074 [details] Bug 1421105 Part 3 - Support dynamically adding or removing elements under multi-column subtree. David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 has approved the revision.
Attachment #9007074 - Flags: review+
Comment on attachment 9007073 [details] Bug 1421105 Part 2 - Implement column-span for block and inline frames. David Baron :dbaron: 🏴󠁵󠁳󠁣󠁡󠁿 ⌚UTC-7 has approved the revision.
Attachment #9007073 - Flags: review+
Blocks: 1496275
No longer blocks: 1496275
The assertion in nsIFrame::UpdateStyleOfChildAnonBox() [1] can be triggered when loading testing/web-platform/tests/css/css-multicol/multicol-span-all-margin-nested-002.xht and then opening devtools. This patch should probably merge into Part 2 after being reviewed. [1] https://searchfox.org/mozilla-central/rev/5786b9be9f887ed371c804e786081b476a403104/layout/generic/nsFrame.cpp#10718
Boris, A friendly reminder for the review to unblock fixing other follow-up bugs. If you don't have the cycle for the moment, please let me know. David could still help take a close look again per https://phabricator.services.mozilla.com/D5209#168843
Flags: needinfo?(bzbarsky)
Attachment #8932291 - Attachment is obsolete: true
Attachment #8932291 - Flags: review?(dbaron)
Attachment #8932292 - Attachment is obsolete: true
Attachment #8932292 - Flags: review?(dbaron)
Attachment #8932293 - Attachment is obsolete: true
Attachment #8932293 - Flags: review?(dbaron)
Attachment #8932294 - Attachment is obsolete: true
Attachment #8935217 - Attachment is obsolete: true
Attachment #8935217 - Flags: review?(dbaron)
Attachment #8949188 - Attachment is obsolete: true
Attachment #8949188 - Flags: review?(dbaron)
Attachment #8949189 - Attachment is obsolete: true
Attachment #8949189 - Flags: review?(dbaron)
I'm sorry for the horrible lag here. :( I really appreciate your patience. Followup rounds of review should be much faster now that I have this paged in. I will be at TPAC next week, but I will try to ensure I review updates for this bug as needed even then.
Flags: needinfo?(bzbarsky)
Attachment #9015179 - Attachment is obsolete: true
The major change in this patch is ::-moz-column-span-wrapper blocks are no longer joining in the continuation chains when they're created in CreateColumnSpanSiblings(). We can do that because ::-moz-column-span-wrapper is an non-inheriting anon box, which doesn't need to be restyled. In doing so, -moz-column-span-wrapper block's style won't be tramped by RestyleManager::ProcessPostTraversal() or nsIFrame::UpdateStyleOfOwnedChildFrame() because both functions will set the same style to all the continuations. GetNextContinuationWithSameStyle was deleted in bug 1447367. Delete the comment in nsInlineFrame::UpdateStyleOfOwnedAnonBoxesForIBSplit() to avoid confusion.
Blocks: 1503420
Blocks: 1504053
Blocks: 1504063
Pushed by aethanyc@gmail.com: https://hg.mozilla.org/integration/autoland/rev/5e71bebd92b5 Part 1 - Add a helper IsColumnContainerStyle() to StyleColumn. r=dbaron https://hg.mozilla.org/integration/autoland/rev/3adb1922d88d Part 2 - Implement column-span for block and inline frames. r=bzbarsky,dbaron https://hg.mozilla.org/integration/autoland/rev/2610d4f32f91 Part 3 - Support dynamically adding or removing elements under multi-column subtree. r=bzbarsky,dbaron https://hg.mozilla.org/integration/autoland/rev/d315441f1d35 Part 4 - Enable CSS column-span in UA stylesheet, and update test expectations. r=dbaron https://hg.mozilla.org/integration/autoland/rev/5d474106adce Part 5 - Fix anonymous -moz-column-span-wrapper block's style is overridden after restyling. r=bzbarsky,emilio
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/13992 for changes under testing/web-platform/tests
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Blocks: 1506163
No longer blocks: 1506163
Depends on: 1506163
Depends on: 1506717
Depends on: 1506720
Depends on: 1506880
Depends on: 1507269
Blocks: 1507339
Depends on: 1511535
Depends on: 1513416
On further analysis, this looks like it is internals stuff, and doesn't really need any explicit documentation on MDN. Correct me if I'm wrong.
Keywords: dev-doc-needed
Flags: needinfo?(aethanyc)
(In reply to Chris Mills (Mozilla, MDN editor) [:cmills] from comment #75) > On further analysis, this looks like it is internals stuff, and doesn't > really need any explicit documentation on MDN. Correct me if I'm wrong. You're right. This one doesn't need documentation on MDN.
Flags: needinfo?(aethanyc)
Depends on: 1516301
Depends on: 1516739
Depends on: 1523582
Depends on: 1523595
Blocks: 1535200
No longer depends on: 1506293
Regressions: 1506293
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: