diff --git a/components/layout/flex.rs b/components/layout/flex.rs index f591f023f043..64cc24a0746d 100644 --- a/components/layout/flex.rs +++ b/components/layout/flex.rs @@ -276,9 +276,8 @@ impl FlexLine { // https://drafts.csswg.org/css-flexbox/#resolve-flexible-lengths for item in items.iter_mut().filter(|i| !(i.is_strut && collapse)) { item.main_size = max(item.min_size, min(item.base_size, item.max_size)); - if item.main_size != item.base_size - || (self.free_space > Au(0) && item.flex_grow == 0.0) - || (self.free_space < Au(0) && item.flex_shrink == 0.0) { + if (self.free_space > Au(0) && (item.flex_grow == 0.0 || item.base_size >= item.max_size)) || + (self.free_space < Au(0) && (item.flex_shrink == 0.0 || item.base_size <= item.min_size)) { item.is_frozen = true; } else { item.is_frozen = false; @@ -311,7 +310,7 @@ impl FlexLine { (item.flex_shrink * item.base_size.0 as f32 / total_scaled, item.min_size) }; let variation = self.free_space.scale_by(factor); - if variation.0.abs() > (end_size - item.main_size).0.abs() { + if variation.0.abs() >= (end_size - item.main_size).0.abs() { // Use constraint as the target main size, and freeze item. total_variation += end_size - item.main_size; item.main_size = end_size; diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox-flex-wrap-flexing.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox-flex-wrap-flexing.htm.ini deleted file mode 100644 index f308bc346972..000000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox-flex-wrap-flexing.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[flexbox-flex-wrap-flexing.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_min-width-auto.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_min-width-auto.htm.ini index c37a3dee6e60..914e6b9e4185 100644 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_min-width-auto.htm.ini +++ b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_min-width-auto.htm.ini @@ -1,4 +1,5 @@ [flexbox_computedstyle_min-width-auto.htm] type: testharness - expected: TIMEOUT + [flexbox | computed style | min-width: auto] + expected: FAIL