diff options
author | Oriol Brufau <obrufau@igalia.com> | 2025-03-23 15:26:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-23 14:26:44 +0000 |
commit | 8c2ac88ad0de2760c87675565a65903bb9e03d7b (patch) | |
tree | 182f4bdbde0d3046b612f09aeb4167f36ce33f85 | |
parent | 3a356ffb74ec342500b92244437787a3cad3e0c1 (diff) | |
download | servo-8c2ac88ad0de2760c87675565a65903bb9e03d7b.tar.gz servo-8c2ac88ad0de2760c87675565a65903bb9e03d7b.zip |
layout: Implement the `fit-content()` sizing function (#36056)
Spec: https://drafts.csswg.org/css-sizing-3/#funcdef-width-fit-content
It's similar to the `fit-content` keyword but, instead of clamping the
stretch size between `min-content` and `max-content`, it clamps the
provided argument.
So now that we support `fit-content`, it's quite straightforward to add.
It's just not completely clear what should happen when the argument has
a cyclic percentage, so this may need some further adjustments depending
on the outcome of https://github.com/w3c/csswg-drafts/issues/11805
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
33 files changed, 100 insertions, 192 deletions
diff --git a/Cargo.lock b/Cargo.lock index 7a274e0b461..6759907cecd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6513,7 +6513,7 @@ dependencies = [ [[package]] name = "selectors" version = "0.26.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "bitflags 2.9.0", "cssparser", @@ -6798,7 +6798,7 @@ dependencies = [ [[package]] name = "servo_arc" version = "0.4.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "serde", "stable_deref_trait", @@ -7248,7 +7248,7 @@ dependencies = [ [[package]] name = "stylo" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "app_units", "arrayvec", @@ -7306,7 +7306,7 @@ dependencies = [ [[package]] name = "stylo_atoms" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "string_cache", "string_cache_codegen", @@ -7315,12 +7315,12 @@ dependencies = [ [[package]] name = "stylo_config" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" [[package]] name = "stylo_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "darling", "proc-macro2", @@ -7332,7 +7332,7 @@ dependencies = [ [[package]] name = "stylo_dom" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "bitflags 2.9.0", "stylo_malloc_size_of", @@ -7341,7 +7341,7 @@ dependencies = [ [[package]] name = "stylo_malloc_size_of" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "app_units", "cssparser", @@ -7358,12 +7358,12 @@ dependencies = [ [[package]] name = "stylo_static_prefs" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" [[package]] name = "stylo_traits" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "app_units", "bitflags 2.9.0", @@ -7746,7 +7746,7 @@ dependencies = [ [[package]] name = "to_shmem" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "cssparser", "servo_arc", @@ -7759,7 +7759,7 @@ dependencies = [ [[package]] name = "to_shmem_derive" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2025-03-15#4b44fbdb7f93c3f57eb99ad5f14cda5e82af4467" +source = "git+https://github.com/servo/stylo?branch=2025-03-15#bd0a7031b68ed87f9dbba0714e735fa5cf9df676" dependencies = [ "darling", "proc-macro2", diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 4114a439916..77076898f57 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -2599,11 +2599,8 @@ impl FlexItemBox { BoxSizing::BorderBox => length - main_padding_border_sum, } }; - size.maybe_map(|v| { - v.maybe_to_used_value(container_definite_main_size) - .map(apply_box_sizing) - }) - .unwrap_or_default() + size.resolve_percentages_for_preferred(container_definite_main_size) + .map(apply_box_sizing) }, }, } diff --git a/components/layout_2020/flow/mod.rs b/components/layout_2020/flow/mod.rs index 898f2d00500..58e7310d6cd 100644 --- a/components/layout_2020/flow/mod.rs +++ b/components/layout_2020/flow/mod.rs @@ -2144,9 +2144,11 @@ impl<'container> PlacementState<'container> { fn block_size_is_zero_or_intrinsic(size: &StyleSize, containing_block: &ContainingBlock) -> bool { match size { - StyleSize::Auto | StyleSize::MinContent | StyleSize::MaxContent | StyleSize::FitContent => { - true - }, + StyleSize::Auto | + StyleSize::MinContent | + StyleSize::MaxContent | + StyleSize::FitContent | + StyleSize::FitContentFunction(_) => true, StyleSize::Stretch => { // TODO: Should this return true when the containing block has a definite size of 0px? !containing_block.size.block.is_definite() diff --git a/components/layout_2020/geom.rs b/components/layout_2020/geom.rs index 8d5ff95f743..56da1c5d7f5 100644 --- a/components/layout_2020/geom.rs +++ b/components/layout_2020/geom.rs @@ -133,6 +133,17 @@ impl<T: Clone> LogicalVec2<T> { block: f(&self.block), } } + + pub(crate) fn map_with<U, V>( + &self, + other: &LogicalVec2<U>, + f: impl Fn(&T, &U) -> V, + ) -> LogicalVec2<V> { + LogicalVec2 { + inline: f(&self.inline, &other.inline), + block: f(&self.block, &other.block), + } + } } impl<T: Add<Output = T> + Copy> Add<LogicalVec2<T>> for LogicalVec2<T> { @@ -697,6 +708,8 @@ pub(crate) enum Size<T> { MaxContent, /// <https://drafts.csswg.org/css-sizing-4/#valdef-width-fit-content> FitContent, + /// <https://drafts.csswg.org/css-sizing-3/#funcdef-width-fit-content> + FitContentFunction(T), /// <https://drafts.csswg.org/css-sizing-4/#valdef-width-stretch> Stretch, /// Represents a numeric `<length-percentage>`, but resolved as a `T`. @@ -730,34 +743,28 @@ impl<T: Clone> Size<T> { } #[inline] - pub fn map<U>(&self, f: impl FnOnce(T) -> U) -> Size<U> { + pub(crate) fn map<U>(&self, f: impl FnOnce(T) -> U) -> Size<U> { match self { Size::Initial => Size::Initial, Size::MinContent => Size::MinContent, Size::MaxContent => Size::MaxContent, Size::FitContent => Size::FitContent, + Size::FitContentFunction(size) => Size::FitContentFunction(f(size.clone())), Size::Stretch => Size::Stretch, Size::Numeric(numeric) => Size::Numeric(f(numeric.clone())), } } - - #[inline] - pub fn maybe_map<U>(&self, f: impl FnOnce(T) -> Option<U>) -> Option<Size<U>> { - Some(match self { - Size::Numeric(numeric) => Size::Numeric(f(numeric.clone())?), - _ => self.map(|_| unreachable!("This shouldn't be called for keywords")), - }) - } } impl From<StyleSize> for Size<LengthPercentage> { fn from(size: StyleSize) -> Self { match size { - StyleSize::LengthPercentage(length) => Size::Numeric(length.0), + StyleSize::LengthPercentage(lp) => Size::Numeric(lp.0), StyleSize::Auto => Size::Initial, StyleSize::MinContent => Size::MinContent, StyleSize::MaxContent => Size::MaxContent, StyleSize::FitContent => Size::FitContent, + StyleSize::FitContentFunction(lp) => Size::FitContentFunction(lp.0), StyleSize::Stretch => Size::Stretch, StyleSize::AnchorSizeFunction(_) => unreachable!("anchor-size() should be disabled"), } @@ -767,11 +774,12 @@ impl From<StyleSize> for Size<LengthPercentage> { impl From<StyleMaxSize> for Size<LengthPercentage> { fn from(max_size: StyleMaxSize) -> Self { match max_size { - StyleMaxSize::LengthPercentage(length) => Size::Numeric(length.0), + StyleMaxSize::LengthPercentage(lp) => Size::Numeric(lp.0), StyleMaxSize::None => Size::Initial, StyleMaxSize::MinContent => Size::MinContent, StyleMaxSize::MaxContent => Size::MaxContent, StyleMaxSize::FitContent => Size::FitContent, + StyleMaxSize::FitContentFunction(lp) => Size::FitContentFunction(lp.0), StyleMaxSize::Stretch => Size::Stretch, StyleMaxSize::AnchorSizeFunction(_) => unreachable!("anchor-size() should be disabled"), } @@ -784,25 +792,49 @@ impl Size<LengthPercentage> { self.to_numeric() .and_then(|length_percentage| length_percentage.to_percentage()) } -} -impl LogicalVec2<Size<LengthPercentage>> { - pub(crate) fn maybe_percentages_relative_to_basis( - &self, - basis: &LogicalVec2<Option<Au>>, - ) -> LogicalVec2<Size<Au>> { - LogicalVec2 { - inline: self - .inline - .maybe_map(|v| v.maybe_to_used_value(basis.inline)) - .unwrap_or_default(), - block: self - .block - .maybe_map(|v| v.maybe_to_used_value(basis.block)) - .unwrap_or_default(), + /// Resolves percentages in a preferred size, against the provided basis. + /// If the basis is missing, percentages are considered cyclic. + /// <https://www.w3.org/TR/css-sizing-3/#preferred-size-properties> + /// <https://www.w3.org/TR/css-sizing-3/#cyclic-percentage-size> + #[inline] + pub(crate) fn resolve_percentages_for_preferred(&self, basis: Option<Au>) -> Size<Au> { + match self { + Size::Numeric(numeric) => numeric + .maybe_to_used_value(basis) + .map_or(Size::Initial, Size::Numeric), + Size::FitContentFunction(numeric) => { + // Under discussion in https://github.com/w3c/csswg-drafts/issues/11805 + numeric + .maybe_to_used_value(basis) + .map_or(Size::FitContent, Size::FitContentFunction) + }, + _ => self.map(|_| unreachable!("This shouldn't be called for keywords")), } } + /// Resolves percentages in a maximum size, against the provided basis. + /// If the basis is missing, percentages are considered cyclic. + /// <https://www.w3.org/TR/css-sizing-3/#preferred-size-properties> + /// <https://www.w3.org/TR/css-sizing-3/#cyclic-percentage-size> + #[inline] + pub(crate) fn resolve_percentages_for_max(&self, basis: Option<Au>) -> Size<Au> { + match self { + Size::Numeric(numeric) => numeric + .maybe_to_used_value(basis) + .map_or(Size::Initial, Size::Numeric), + Size::FitContentFunction(numeric) => { + // Under discussion in https://github.com/w3c/csswg-drafts/issues/11805 + numeric + .maybe_to_used_value(basis) + .map_or(Size::MaxContent, Size::FitContentFunction) + }, + _ => self.map(|_| unreachable!("This shouldn't be called for keywords")), + } + } +} + +impl LogicalVec2<Size<LengthPercentage>> { pub(crate) fn percentages_relative_to_basis( &self, basis: &LogicalVec2<Au>, @@ -831,6 +863,7 @@ impl Size<Au> { }, Self::MinContent => content_size.min_content, Self::MaxContent => content_size.max_content, + Self::FitContentFunction(size) => content_size.shrink_to_fit(*size), Self::FitContent => { content_size.shrink_to_fit(stretch_size.unwrap_or_else(|| content_size.max_content)) }, @@ -852,6 +885,7 @@ impl Size<Au> { Self::Initial => get_automatic_minimum_size(), Self::MinContent => content_size.min_content, Self::MaxContent => content_size.max_content, + Self::FitContentFunction(size) => content_size.shrink_to_fit(*size), Self::FitContent => content_size.shrink_to_fit(stretch_size.unwrap_or_default()), Self::Stretch => stretch_size.unwrap_or_default(), Self::Numeric(numeric) => *numeric, @@ -870,6 +904,7 @@ impl Size<Au> { Self::Initial => return None, Self::MinContent => content_size.min_content, Self::MaxContent => content_size.max_content, + Self::FitContentFunction(size) => content_size.shrink_to_fit(*size), Self::FitContent => content_size.shrink_to_fit(stretch_size.unwrap_or(MAX_AU)), Self::Stretch => return stretch_size, Self::Numeric(numeric) => *numeric, @@ -888,7 +923,11 @@ impl Size<Au> { #[inline] pub(crate) fn maybe_resolve_extrinsic(&self, stretch_size: Option<Au>) -> Option<Au> { match self { - Self::Initial | Self::MinContent | Self::MaxContent | Self::FitContent => None, + Self::Initial | + Self::MinContent | + Self::MaxContent | + Self::FitContent | + Self::FitContentFunction(_) => None, Self::Stretch => stretch_size, Self::Numeric(numeric) => Some(*numeric), } diff --git a/components/layout_2020/sizing.rs b/components/layout_2020/sizing.rs index 4a4cb5d4dfa..125a832fe6c 100644 --- a/components/layout_2020/sizing.rs +++ b/components/layout_2020/sizing.rs @@ -191,6 +191,10 @@ pub(crate) fn outer_inline( content_size.sizes.max_content, content_size.depends_on_block_constraints, ), + Size::FitContentFunction(size) => { + let size = content_size.sizes.shrink_to_fit(size); + (size, size, content_size.depends_on_block_constraints) + }, Size::Stretch => return stretch_values, }) }; diff --git a/components/layout_2020/style_ext.rs b/components/layout_2020/style_ext.rs index 57207186f81..4a8d15b9fd3 100644 --- a/components/layout_2020/style_ext.rs +++ b/components/layout_2020/style_ext.rs @@ -1014,18 +1014,16 @@ impl LayoutStyle<'_> { depends_on_block_constraints(&max_size.block) || style.depends_on_block_constraints_due_to_relative_positioning(writing_mode); - let box_size = box_size.maybe_percentages_relative_to_basis(&containing_block.size); - let content_box_size = style - .content_box_size_for_box_size(box_size, &pbm) - .map(|v| v.map(Au::from)); + let box_size = box_size.map_with(&containing_block.size, |size, basis| { + size.resolve_percentages_for_preferred(*basis) + }); + let content_box_size = style.content_box_size_for_box_size(box_size, &pbm); let min_size = min_size.percentages_relative_to_basis(&containing_block_size_or_zero); - let content_min_box_size = style - .content_min_box_size_for_min_size(min_size, &pbm) - .map(|v| v.map(Au::from)); - let max_size = max_size.maybe_percentages_relative_to_basis(&containing_block.size); - let content_max_box_size = style - .content_max_box_size_for_max_size(max_size, &pbm) - .map(|v| v.map(Au::from)); + let content_min_box_size = style.content_min_box_size_for_min_size(min_size, &pbm); + let max_size = max_size.map_with(&containing_block.size, |size, basis| { + size.resolve_percentages_for_max(*basis) + }); + let content_max_box_size = style.content_max_box_size_for_max_size(max_size, &pbm); ContentBoxSizesAndPBM { content_box_sizes: LogicalVec2 { block: Sizes::new( diff --git a/components/layout_2020/taffy/stylo_taffy/convert.rs b/components/layout_2020/taffy/stylo_taffy/convert.rs index 9baf026793c..29e76b516ad 100644 --- a/components/layout_2020/taffy/stylo_taffy/convert.rs +++ b/components/layout_2020/taffy/stylo_taffy/convert.rs @@ -54,6 +54,7 @@ pub fn dimension(val: &stylo::Size) -> taffy::Dimension { stylo::Size::MaxContent => taffy::Dimension::Auto, stylo::Size::MinContent => taffy::Dimension::Auto, stylo::Size::FitContent => taffy::Dimension::Auto, + stylo::Size::FitContentFunction(_) => taffy::Dimension::Auto, stylo::Size::Stretch => taffy::Dimension::Auto, // Anchor positioning will be flagged off for time being @@ -71,6 +72,7 @@ pub fn max_size_dimension(val: &stylo::MaxSize) -> taffy::Dimension { stylo::MaxSize::MaxContent => taffy::Dimension::Auto, stylo::MaxSize::MinContent => taffy::Dimension::Auto, stylo::MaxSize::FitContent => taffy::Dimension::Auto, + stylo::MaxSize::FitContentFunction(_) => taffy::Dimension::Auto, stylo::MaxSize::Stretch => taffy::Dimension::Auto, // Anchor positioning will be flagged off for time being diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-001.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-001.html.ini deleted file mode 100644 index bd89c37d30d..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-002.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-002.html.ini deleted file mode 100644 index 560c0c740f5..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-002.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-003.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-003.html.ini deleted file mode 100644 index 4becf0c8d10..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-003.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-004.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-004.html.ini deleted file mode 100644 index 8f4948160d3..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-004.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-005.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-005.html.ini deleted file mode 100644 index 63f2b6a967f..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-005.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-005.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-006.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-006.html.ini deleted file mode 100644 index 2d49c015fa1..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-006.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-006.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-007.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-007.html.ini deleted file mode 100644 index 0a79173ce7a..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-007.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-007.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-008.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-008.html.ini deleted file mode 100644 index fcea7e84120..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-008.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-008.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-009.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-009.html.ini deleted file mode 100644 index eb21dfff3a9..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-009.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-009.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-010.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-010.html.ini deleted file mode 100644 index 463fd56796e..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-010.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-010.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-011.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-011.html.ini deleted file mode 100644 index 80b9e362254..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-011.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-011.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-012.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-012.html.ini deleted file mode 100644 index 7e5f46ffae7..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-012.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-012.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-013.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-013.html.ini deleted file mode 100644 index ffe71757be9..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-013.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-013.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-014.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-014.html.ini deleted file mode 100644 index 14ac3a7d4e3..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-014.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-014.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-015.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-015.html.ini deleted file mode 100644 index f4655614bc8..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-015.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-015.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-016.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-016.html.ini deleted file mode 100644 index 1258b879b51..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-length-percentage-016.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-length-percentage-016.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/height-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/height-valid.html.ini deleted file mode 100644 index 6d7711beb8c..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/height-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[height-valid.html] - [e.style['height'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['height'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['height'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/max-height-computed.html.ini b/tests/wpt/meta/css/css-sizing/parsing/max-height-computed.html.ini deleted file mode 100644 index 1ce030b6ca3..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/max-height-computed.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[max-height-computed.html] - [Property max-height value 'fit-content(10px)'] - expected: FAIL - - [Property max-height value 'fit-content(20%)'] - expected: FAIL - - [Property max-height value 'fit-content(calc(10% + 40px))'] - expected: FAIL - - [Property max-height value 'fit-content(calc(10px + 0.5em))'] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/max-height-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/max-height-valid.html.ini deleted file mode 100644 index e6d91c7ad3c..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/max-height-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[max-height-valid.html] - [e.style['max-height'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['max-height'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['max-height'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/max-width-computed.html.ini b/tests/wpt/meta/css/css-sizing/parsing/max-width-computed.html.ini deleted file mode 100644 index a3433878bcc..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/max-width-computed.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[max-width-computed.html] - [Property max-width value 'fit-content(10px)'] - expected: FAIL - - [Property max-width value 'fit-content(20%)'] - expected: FAIL - - [Property max-width value 'fit-content(calc(10% + 40px))'] - expected: FAIL - - [Property max-width value 'fit-content(calc(10px + 0.5em))'] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/max-width-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/max-width-valid.html.ini deleted file mode 100644 index 827822e9396..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/max-width-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[max-width-valid.html] - [e.style['max-width'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['max-width'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['max-width'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/min-height-computed.html.ini b/tests/wpt/meta/css/css-sizing/parsing/min-height-computed.html.ini deleted file mode 100644 index 38fde2d8e70..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/min-height-computed.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[min-height-computed.html] - [Property min-height value 'fit-content(10px)'] - expected: FAIL - - [Property min-height value 'fit-content(20%)'] - expected: FAIL - - [Property min-height value 'fit-content(calc(10% + 40px))'] - expected: FAIL - - [Property min-height value 'fit-content(calc(10px + 0.5em))'] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/min-height-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/min-height-valid.html.ini deleted file mode 100644 index 4a673ae2cf1..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/min-height-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[min-height-valid.html] - [e.style['min-height'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['min-height'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['min-height'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/min-width-computed.html.ini b/tests/wpt/meta/css/css-sizing/parsing/min-width-computed.html.ini deleted file mode 100644 index 5e87562d965..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/min-width-computed.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[min-width-computed.html] - [Property min-width value 'fit-content(10px)'] - expected: FAIL - - [Property min-width value 'fit-content(20%)'] - expected: FAIL - - [Property min-width value 'fit-content(calc(10% + 40px))'] - expected: FAIL - - [Property min-width value 'fit-content(calc(10px + 0.5em))'] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/min-width-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/min-width-valid.html.ini deleted file mode 100644 index bfb9555dadc..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/min-width-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[min-width-valid.html] - [e.style['min-width'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['min-width'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['min-width'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/parsing/width-valid.html.ini b/tests/wpt/meta/css/css-sizing/parsing/width-valid.html.ini deleted file mode 100644 index 4538a8f7fce..00000000000 --- a/tests/wpt/meta/css/css-sizing/parsing/width-valid.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[width-valid.html] - [e.style['width'\] = "fit-content(10%)" should set the property value] - expected: FAIL - - [e.style['width'\] = "fit-content(0.5em)" should set the property value] - expected: FAIL - - [e.style['width'\] = "fit-content(calc(10% - 0.5em))" should set the property value] - expected: FAIL |