Bug 1938619 - Add a pref (disabled by default) to enable intrinsic sizing of flexible grid tracks based on grid items that span multiple tracks. r=layout-grid-reviewers,dholbert
The pref layout.css.grid-flex-spanning-items-intrinsic-sizing.enabled is expected to be removed once these regressions are fixed. This should be a good compromise between maintaining the code from bug 1916849, and avoiding breakage/extra backouts. Differential Revision: https://phabricator.services.mozilla.com/D235089
This commit is contained in:
@@ -6814,6 +6814,10 @@ void nsGridContainerFrame::Tracks::ResolveIntrinsicSize(
|
||||
// Set eIsFlexing on the item state here to speed up
|
||||
// FindUsedFlexFraction later.
|
||||
gridItem.mState[mAxis] |= ItemState::eIsFlexing;
|
||||
if (!StaticPrefs::
|
||||
layout_css_grid_flex_spanning_items_intrinsic_sizing_enabled()) {
|
||||
continue;
|
||||
}
|
||||
items = &flexSpanningItems;
|
||||
}
|
||||
|
||||
|
||||
@@ -9527,6 +9527,13 @@
|
||||
mirror: always
|
||||
rust: true
|
||||
|
||||
# Perform intrinsic sizing of flexible grid tracks based on grid items that
|
||||
# span more than one track.
|
||||
- name: layout.css.grid-flex-spanning-items-intrinsic-sizing.enabled
|
||||
type: bool
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
# Is support for :has() enabled?
|
||||
- name: layout.css.has-selector.enabled
|
||||
type: RelaxedAtomicBool
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
[grid-flex-track-intrinsic-sizes-001.html]
|
||||
expected:
|
||||
if (os == "android") and fission: [OK, TIMEOUT]
|
||||
['grid' with: grid-template-columns: 1fr minmax(0, 1fr); and grid-template-rows: 1fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr minmax(0, 1fr); and grid-template-rows: 0fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr auto; and grid-template-rows: 0fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr 1fr; and grid-template-rows: 0fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr 0fr; and grid-template-rows: 1fr 0fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr 0fr; and grid-template-rows: 0fr 0fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr 1fr; and grid-template-rows: 1fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr minmax(25px, 1fr); and grid-template-rows: 1fr minmax(25px, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr max-content; and grid-template-rows: 1fr max-content;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr auto; and grid-template-rows: 1fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr minmax(0, 0fr); and grid-template-rows: 0fr minmax(0, 0fr);]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 0fr 0fr 1fr; and grid-template-rows: 0fr 0fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr 3fr; and grid-template-rows: 1fr 3fr;]
|
||||
expected: FAIL
|
||||
@@ -1,3 +1,14 @@
|
||||
[grid-flex-track-intrinsic-sizes-002.html]
|
||||
expected:
|
||||
if (os == "android") and fission: [OK, TIMEOUT]
|
||||
['grid' with: grid-template-columns: 1fr 1fr 1fr; and grid-template-rows: 1fr 1fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr auto auto auto; and grid-template-rows: 1fr auto auto auto;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr 1fr 1fr 1fr; and grid-template-rows: 1fr 1fr 1fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
['grid' with: grid-template-columns: 1fr 1fr 1fr 4fr; and grid-template-rows: 1fr 1fr 1fr 4fr;]
|
||||
expected: FAIL
|
||||
|
||||
@@ -1,6 +1,74 @@
|
||||
[grid-flex-track-intrinsic-sizes-003.html]
|
||||
expected:
|
||||
if (os == "android") and fission: [OK, TIMEOUT]
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr 0fr; and grid-template-rows: 0fr 0fr;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0.5fr auto; and grid-template-rows: 0.5fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr auto; and grid-template-rows: 0fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr min-content; and grid-template-rows: 1fr min-content;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr minmax(0, 0fr); and grid-template-rows: 0fr minmax(0, 0fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr 1fr; and grid-template-rows: 0fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr minmax(0, 1fr); and grid-template-rows: 0fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr minmax(0, 1fr); and grid-template-rows: 1fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr minmax(25px, 1fr); and grid-template-rows: 1fr minmax(25px, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr max-content; and grid-template-rows: 1fr max-content;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr minmax(0, 0fr); and grid-template-rows: 0fr minmax(0, 0fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr min-content; and grid-template-rows: 0fr min-content;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr 0fr; and grid-template-rows: 1fr 0fr;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr 1fr; and grid-template-rows: 1fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr 0fr 1fr; and grid-template-rows: 0fr 0fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr auto; and grid-template-rows: 0fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr 3fr; and grid-template-rows: 1fr 3fr;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0.5fr auto; and grid-template-rows: 0.5fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr 0fr; and grid-template-rows: 0fr 0fr;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 1fr auto; and grid-template-rows: 1fr auto;]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr minmax(0, 1fr); and grid-template-rows: 0fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
[min-content min item 'grid' with: grid-template-columns: 0fr 0fr 1fr; and grid-template-rows: 0fr 0fr 1fr;]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 1fr minmax(0, 1fr); and grid-template-rows: 1fr minmax(0, 1fr);]
|
||||
expected: FAIL
|
||||
|
||||
[50px min item 'grid' with: grid-template-columns: 0fr min-content; and grid-template-rows: 0fr min-content;]
|
||||
expected: FAIL
|
||||
|
||||
Reference in New Issue
Block a user