diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index d107ec78bfb..5adf9c912f0 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -1416,12 +1416,12 @@ impl InitialFlexLineLayout<'_> { } let check_for_flexible_items = || frozen_count.get() < items.len(); - let free_space = || { + let free_space = |all_items_frozen: bool| { container_main_size - items_and_main_sizes() .map(|((item, target_main_size), frozen)| { item.pbm_auto_is_zero.main + - if frozen.get() { + if all_items_frozen || frozen.get() { target_main_size.get() } else { item.flex_base_size @@ -1430,7 +1430,7 @@ impl InitialFlexLineLayout<'_> { .sum() }; // https://drafts.csswg.org/css-flexbox/#initial-free-space - let initial_free_space = free_space(); + let initial_free_space = free_space(false); let unfrozen_items = || { items_and_main_sizes().filter_map(|(item_and_target_main_size, frozen)| { if !frozen.get() { @@ -1442,7 +1442,7 @@ impl InitialFlexLineLayout<'_> { }; loop { // https://drafts.csswg.org/css-flexbox/#remaining-free-space - let mut remaining_free_space = free_space(); + let mut remaining_free_space = free_space(false); if !check_for_flexible_items() { return (target_main_sizes_vec, remaining_free_space); } @@ -1504,8 +1504,7 @@ impl InitialFlexLineLayout<'_> { Ordering::Equal => { // “Freeze all items.” // Return instead, as that’s what the next loop iteration would do. - let remaining_free_space = - container_main_size - target_main_sizes_vec.iter().cloned().sum(); + let remaining_free_space = free_space(true); return (target_main_sizes_vec, remaining_free_space); }, Ordering::Greater => { diff --git a/tests/wpt/meta/css/css-flexbox/flex-flow-013.html.ini b/tests/wpt/meta/css/css-flexbox/flex-flow-013.html.ini index f42a2a0010d..60c9c874e55 100644 --- a/tests/wpt/meta/css/css-flexbox/flex-flow-013.html.ini +++ b/tests/wpt/meta/css/css-flexbox/flex-flow-013.html.ini @@ -5,18 +5,6 @@ [.flexbox 11] expected: FAIL - [.flexbox 4] - expected: FAIL - - [.flexbox 2] - expected: FAIL - - [.flexbox 1] - expected: FAIL - - [.flexbox 3] - expected: FAIL - [.flexbox 9] expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml.ini deleted file mode 100644 index 33508636edf..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-canvas-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml.ini deleted file mode 100644 index c33eb69f9e9..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-canvas-horiz-001v.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml.ini deleted file mode 100644 index 50da74a7d55..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-canvas-vert-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml.ini deleted file mode 100644 index 33cdfcd51ee..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-canvas-vert-001v.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml.ini deleted file mode 100644 index ab01e596fb6..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-fieldset-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml.ini deleted file mode 100644 index bdb738da04e..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-fieldset-vert-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml.ini deleted file mode 100644 index 36cc12e570c..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-iframe-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml.ini deleted file mode 100644 index 98e1aadf6ea..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-iframe-vert-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml.ini deleted file mode 100644 index b81dc136ed2..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-img-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-vert-001.xhtml.ini deleted file mode 100644 index 8d2aa03e0d7..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-img-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-img-vert-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml.ini deleted file mode 100644 index fcbae31856f..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-textarea-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml.ini deleted file mode 100644 index 6209fc1effc..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-textarea-vert-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml.ini deleted file mode 100644 index 228a9d52f61..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-video-horiz-001.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-vert-001.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-vert-001.xhtml.ini deleted file mode 100644 index 78a712924f5..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-basic-video-vert-001.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-basic-video-vert-001.xhtml] - expected: FAIL