From 9a9e7039846bd613d11f2088756ea80326ae4edd Mon Sep 17 00:00:00 2001 From: Pu Xingyu Date: Wed, 17 May 2023 19:30:18 +0800 Subject: [PATCH 1/2] layout_2020: Fix target main size not get clamped in flexbox When resolving flexible lengths, the clamping result of item's target main size is not actually saved while it should. --- components/layout_2020/flexbox/layout.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 8826622276c..a7a2875a703 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -943,6 +943,8 @@ impl FlexLine<'_> { // it’s a min violation.” for (item_and_target_main_size, frozen) in items() { if violation(item_and_target_main_size) > Length::zero() { + let (item, target_main_size) = item_and_target_main_size; + target_main_size.set(item.content_min_size.main); frozen_count.set(frozen_count.get() + 1); frozen.set(true); } @@ -954,6 +956,11 @@ impl FlexLine<'_> { // it’s a max violation.” for (item_and_target_main_size, frozen) in items() { if violation(item_and_target_main_size) < Length::zero() { + let (item, target_main_size) = item_and_target_main_size; + let Some(max_size) = item.content_max_size.main else { + unreachable!() + }; + target_main_size.set(max_size); frozen_count.set(frozen_count.get() + 1); frozen.set(true); } From d1497fa363419fd0382408d4c15f14bd64081a4f Mon Sep 17 00:00:00 2001 From: Pu Xingyu Date: Wed, 17 May 2023 20:43:36 +0800 Subject: [PATCH 2/2] Update wpt expectations --- .../css/css-flexbox/flex-grow-008.html.ini | 2 -- .../flexbox_justifycontent-center.html.ini | 2 -- .../flexbox_justifycontent-flex-end.html.ini | 2 -- .../flexbox_justifycontent-flex-start.html.ini | 2 -- ...exbox_justifycontent-spacearound-only.html.ini | 2 -- .../flexbox_justifycontent-spacearound.html.ini | 2 -- ...xbox_justifycontent-spacebetween-only.html.ini | 2 -- .../flexbox_justifycontent-spacebetween.html.ini | 2 -- .../image-as-flexitem-size-005.html.ini | 15 --------------- .../image-as-flexitem-size-005v.html.ini | 15 --------------- .../css-flexbox/percentage-heights-012.html.ini | 3 --- 11 files changed, 49 deletions(-) delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flex-grow-008.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-center.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-end.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-start.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound-only.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween-only.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween.html.ini diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-grow-008.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-grow-008.html.ini deleted file mode 100644 index b0f1a4130ae..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-grow-008.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flex-grow-008.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-center.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-center.html.ini deleted file mode 100644 index 7868f916baf..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-center.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-center.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-end.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-end.html.ini deleted file mode 100644 index 7321ceb98ea..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-end.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-flex-end.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-start.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-start.html.ini deleted file mode 100644 index 42330ff573f..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-flex-start.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-flex-start.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound-only.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound-only.html.ini deleted file mode 100644 index 59b9e06f11b..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound-only.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacearound-only.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound.html.ini deleted file mode 100644 index b886e442416..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacearound.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacearound.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween-only.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween-only.html.ini deleted file mode 100644 index 32087d8f027..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween-only.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacebetween-only.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween.html.ini deleted file mode 100644 index f326a468948..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox_justifycontent-spacebetween.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacebetween.html] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005.html.ini index 1702a404fe5..88fb94109a5 100644 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005.html.ini @@ -1,7 +1,4 @@ [image-as-flexitem-size-005.html] - [.flexbox > img 11] - expected: FAIL - [.flexbox > img 18] expected: FAIL @@ -25,15 +22,3 @@ [.flexbox > img 2] expected: FAIL - - [.flexbox > img 14] - expected: FAIL - - [.flexbox > img 17] - expected: FAIL - - [.flexbox > img 12] - expected: FAIL - - [.flexbox > img 9] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005v.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005v.html.ini index caa6f8d9c11..c2089394dcd 100644 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005v.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/image-as-flexitem-size-005v.html.ini @@ -1,19 +1,4 @@ [image-as-flexitem-size-005v.html] - [.flexbox > img 9] - expected: FAIL - - [.flexbox > img 12] - expected: FAIL - - [.flexbox > img 14] - expected: FAIL - - [.flexbox > img 17] - expected: FAIL - - [.flexbox > img 11] - expected: FAIL - [.flexbox > img 18] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-heights-012.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-heights-012.html.ini index 515fe962775..35f1c062419 100644 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-heights-012.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-heights-012.html.ini @@ -1,6 +1,3 @@ [percentage-heights-012.html] [.flexbox 9] expected: FAIL - - [.flexbox 10] - expected: FAIL