Closed Bug 1523595 Opened 5 years ago Closed 5 years ago

The height of columns in a column container split by a column-span are too large

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- fixed

People

(Reporter: MatsPalmgren_bugz, Assigned: TYLin)

References

(Blocks 1 open bug)

Details

(Keywords: testcase)

Attachments

(5 files)

Attached file Testcase

STR

  1. set "layout.css.column-span.enabled" to true in about:config
  2. load the attached testcase

ACTUAL RESULTS
The height of the columns below the column-span is too large.
The specified height (2em) has already been consumed by
the columns at the top and the column-span block.
The height of the columns above the column-span is also
too large.

EXPECTED RESULTS
The fragments of the blue block should have 1px height
(and there should be a lot of overflow columns created).
The top columns should be auto-sized to one line-height.
The bottom part of the lime border should be roughly
centered under the column-span grey box.
(See Chrome for correct results.)

Summary: The height of columns in a column container split by a column-span is too large → The height of columns in a column container split by a column-span are too large
Blocks: column-span

We currently have height:100% on ::-moz-column-set and ::-moz-column-content.

https://searchfox.org/mozilla-central/rev/c07aaf12f13037c1f5a343d31f8291549e57373f/layout/style/res/ua.css#257-259

See Also: → 1411422
Depends on: 1411422
See Also: 1411422

Bulk moving bugs that have been triaged P4 to P3 (P4 is reserved for WPT bugs).

Priority: P4 → P3
Assignee: nobody → aethanyc
Status: NEW → ASSIGNED

This patch does the same thing as bug 1548118 Part 3, but for
column-balancing-nested-000.html.

Bug 1507244 changes how NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR is propagated
to the child, but I forget to add the bit for nested ColumnSetWrapper.

Currently, no other code depends on this bit being set on nested
ColumnSetWrapper, but Part 3 will. Without this patch,
testing/web-platform/tests/css/css-multicol/multicol-nested-margin-002.xht
will fail with Part 3.

Depends on D31674

We used to apply the column container's block size constraint on top of
the available block size in nsColumnSetFrame::ChooseColumnStrategy().
After column-span is enabled, ColumnSet is no longer the outermost
column frame, we need to apply the block size constraint of
ColumnSetWrapper to the available size when creating the ReflowInput for
ColumnSet so that ColumnSet can use it to compute the max column block
size in ChooseColumnStrategy().

multicol-breaking-004.html is copied and modified from
multicol-breaking-002.html with border-bottom added to test
"box-decoration-break: clone".

Depends on D31675

Attachment #9065787 - Attachment description: Bug 1523595 Part 3 - Apply ColumnSetWrapper's block size constraint to the available size when creating BlockReflowInput for ColumnSet. → Bug 1523595 Part 3 - Apply ColumnSetWrapper's block size constraint to the available size when creating BlockReflowInput for ColumnSet. r=dbaron

The default margin-top of h1 is 0.67em in Firefox (specified in
layout/style/res/html.css) as well as in Google Chrome.

The test reference tries to override it to avoid margin-collapse, but
using 0.66em can cause rounding issue on MacOS that make the test
failed.

Attachment #9065785 - Attachment description: Bug 1523595 Part 1 - Remove margin-bottom from column-balancing-nested-000.html and its reference. → Bug 1523595 Part 1 - Remove margin-bottom from column-balancing-nested-000.html and its reference. r=dbaron
Attachment #9065786 - Attachment description: Bug 1523595 Part 2 - Add missing NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR for nested ColumnSetWrapper. → Bug 1523595 Part 2 - Add missing NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR for nested ColumnSetWrapper. r=dbaron
Pushed by aethanyc@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/eca304c5282a
Part 1 - Remove margin-bottom from column-balancing-nested-000.html and its reference. r=dbaron
https://hg.mozilla.org/integration/autoland/rev/4ce4fef39673
Part 2 - Add missing NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR for nested ColumnSetWrapper. r=dbaron
https://hg.mozilla.org/integration/autoland/rev/9cd5c207529c
Part 3 - Apply ColumnSetWrapper's block size constraint to the available size when creating BlockReflowInput for ColumnSet. r=dbaron
https://hg.mozilla.org/integration/autoland/rev/f8f4f9da5fc8
Part 4 - Enable column-span for multicol-fill-auto-block-children-{001,002}.xht, and fix a reference file. r=dbaron

Since the status are different for nightly and release, what's the status for beta?
For more information, please visit auto_nag documentation.

Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/17467 for changes under testing/web-platform/tests
Blocks: 1569701
Blocks: 1573761
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: