From 1d6be62454cee22e40516c040663246bbf39d063 Mon Sep 17 00:00:00 2001 From: Nico Burns Date: Mon, 29 Apr 2024 11:17:11 +1200 Subject: [PATCH] layout2020 (flexbox): Implement `start`, `end`, and `space-evenly` content alignment (#31724) * Upgrade to stylo 6faedad * Implement start, end, space-evenly content alignment + fix others Update test expectations for content alignment fixes Revert test expectations that are still generating the old results in CI Update layout2013 test expectation for content alignment Update content alignment fallback to use safe alignment Implement fallback alignment Update content alignment with recent spec changes --- Cargo.lock | 26 +-- Cargo.toml | 18 +- components/layout_2020/flexbox/layout.rs | 186 ++++++++++++++---- .../parse-align-content-001.html.ini | 10 - .../parse-align-content-003.html.ini | 10 - .../parse-align-content-005.html.ini | 4 - .../parse-justify-content-001.html.ini | 10 - .../parse-justify-content-003.html.ini | 10 - .../parse-justify-content-005.html.ini | 4 - .../place-content-shorthand-004.html.ini | 22 --- .../css/css-align/inheritance.html.ini | 4 - .../parsing/align-content-computed.html.ini | 10 - .../parsing/align-content-valid.html.ini | 10 - .../parsing/justify-content-computed.html.ini | 10 - .../parsing/justify-content-valid.html.ini | 10 - .../align-content-wrap-005.html.ini | 3 - .../align-content-wrap-001.html.ini | 12 -- .../align-content-wrap-003.html.ini | 15 -- .../align-content-wrap-005.html.ini | 6 + ...lexbox-justify-content-horiz-002.xhtml.ini | 2 - ...lexbox-justify-content-horiz-004.xhtml.ini | 2 - .../flexbox_justifycontent-rtl-001.html.ini | 6 +- ...stifycontent-spacearound-negative.html.ini | 2 - ...tifycontent-spacebetween-negative.html.ini | 2 - .../flexbox_justifycontent-start-rtl.html.ini | 2 - .../flexbox_justifycontent-start.html.ini | 2 - 26 files changed, 179 insertions(+), 219 deletions(-) delete mode 100644 tests/wpt/meta-legacy-layout/css/css-align/content-distribution/place-content-shorthand-004.html.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacearound-negative.html.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacebetween-negative.html.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start-rtl.html.ini delete mode 100644 tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start.html.ini diff --git a/Cargo.lock b/Cargo.lock index 1503ed81b1a..59df99f7bce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1206,7 +1206,7 @@ dependencies = [ [[package]] name = "derive_common" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "darling", "proc-macro2", @@ -3550,7 +3550,7 @@ dependencies = [ [[package]] name = "malloc_size_of" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "accountable-refcell", "app_units", @@ -5168,7 +5168,7 @@ dependencies = [ [[package]] name = "selectors" version = "0.24.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "bitflags 2.5.0", "cssparser", @@ -5456,7 +5456,7 @@ dependencies = [ [[package]] name = "servo_arc" version = "0.2.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "nodrop", "serde", @@ -5466,7 +5466,7 @@ dependencies = [ [[package]] name = "servo_atoms" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "string_cache", "string_cache_codegen", @@ -5664,7 +5664,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "size_of_test" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "static_assertions", ] @@ -5789,7 +5789,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_prefs" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" [[package]] name = "strict-num" @@ -5826,7 +5826,7 @@ dependencies = [ [[package]] name = "style" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "app_units", "arrayvec", @@ -5885,7 +5885,7 @@ dependencies = [ [[package]] name = "style_config" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "lazy_static", ] @@ -5893,7 +5893,7 @@ dependencies = [ [[package]] name = "style_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "darling", "derive_common", @@ -5924,7 +5924,7 @@ dependencies = [ [[package]] name = "style_traits" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "app_units", "bitflags 2.5.0", @@ -6287,7 +6287,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "to_shmem" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "cssparser", "servo_arc", @@ -6300,7 +6300,7 @@ dependencies = [ [[package]] name = "to_shmem_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2024-04-16#81a55acca3f274fce0e365d567c4e7c4cb350d22" +source = "git+https://github.com/servo/stylo?rev=6faedad67ac2e320b51ac72a165b0ceb52caf918#6faedad67ac2e320b51ac72a165b0ceb52caf918" dependencies = [ "darling", "derive_common", diff --git a/Cargo.toml b/Cargo.toml index f4e35a47637..db5f20fd35b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,7 +64,7 @@ keyboard-types = "0.6" lazy_static = "1.4" libc = "0.2" log = "0.4" -malloc_size_of = { git = "https://github.com/servo/stylo", branch = "2024-04-16", features = ["servo"] } +malloc_size_of = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918", features = ["servo"] } malloc_size_of_derive = "0.1" mime = "0.3.13" mime_guess = "2.0.3" @@ -87,31 +87,31 @@ rustls = { version = "0.21.12", features = ["dangerous_configuration"] } rustls-pemfile = "1.0.4" script_layout_interface = { path = "components/shared/script_layout" } script_traits = { path = "components/shared/script" } -selectors = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } +selectors = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } serde = "1.0.198" serde_bytes = "0.11" serde_json = "1.0" servo-media = { git = "https://github.com/servo/media" } servo-media-dummy = { git = "https://github.com/servo/media" } servo-media-gstreamer = { git = "https://github.com/servo/media" } -servo_arc = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } -servo_atoms = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } -size_of_test = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } +servo_arc = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } +servo_atoms = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } +size_of_test = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } smallbitvec = "2.5.3" smallvec = "1.13" sparkle = "0.1.26" string_cache = "0.8" string_cache_codegen = "0.5" -style = { git = "https://github.com/servo/stylo", branch = "2024-04-16", features = ["servo"] } -style_config = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } -style_traits = { git = "https://github.com/servo/stylo", branch = "2024-04-16", features = ["servo"] } +style = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918", features = ["servo"] } +style_config = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } +style_traits = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918", features = ["servo"] } # NOTE: the sm-angle feature only 2024-03-01rms! surfman = { version = "0.9", features = ["chains", "sm-angle", "sm-angle-default"] } syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] } synstructure = "0.13" thin-vec = "0.2.13" time = "0.1.41" -to_shmem = { git = "https://github.com/servo/stylo", branch = "2024-04-16" } +to_shmem = { git = "https://github.com/servo/stylo", rev = "6faedad67ac2e320b51ac72a165b0ceb52caf918" } tokio = "1" tokio-rustls = "0.24" tungstenite = "0.20" diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 71488d83381..393ce99760b 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -48,6 +48,8 @@ struct FlexContext<'a> { container_min_cross_size: Length, container_max_cross_size: Option, flex_axis: FlexAxis, + flex_direction_is_reversed: bool, + flex_wrap_reverse: bool, main_start_cross_start_sides_are: MainStartCrossStart, container_definite_inner_size: FlexRelativeVec2>, align_content: AlignContent, @@ -218,6 +220,10 @@ impl FlexContainer { FlexWrap::Wrap | FlexWrap::WrapReverse => false, }; let flex_axis = FlexAxis::from(flex_direction); + let flex_direction_is_reversed = match flex_direction { + FlexDirection::Row | FlexDirection::Column => false, + FlexDirection::RowReverse | FlexDirection::ColumnReverse => true, + }; let flex_wrap_reverse = match flex_wrap { FlexWrap::Nowrap | FlexWrap::Wrap => false, FlexWrap::WrapReverse => true, @@ -234,6 +240,8 @@ impl FlexContainer { container_max_cross_size, container_is_single_line, flex_axis, + flex_direction_is_reversed, + flex_wrap_reverse, align_content, align_items, justify_content, @@ -297,25 +305,80 @@ impl FlexContainer { // Align all flex lines per `align-content`. let line_count = flex_lines.len(); let mut cross_start_position_cursor = Length::zero(); + let mut line_interval = Length::zero(); - let line_interval = match flex_context.container_definite_inner_size.cross { - Some(cross_size) if line_count >= 2 => { - let free_space = cross_size - content_cross_size; + if let Some(cross_size) = flex_context.container_definite_inner_size.cross { + let free_space = cross_size - content_cross_size; + let layout_is_flex_reversed = flex_context.flex_wrap_reverse; - cross_start_position_cursor = match flex_context.align_content { - AlignContent::Center => free_space / 2.0, - AlignContent::SpaceAround => free_space / (line_count * 2) as CSSFloat, - AlignContent::FlexEnd => free_space, - _ => Length::zero(), + // Implement fallback alignment. + // + // In addition to the spec at https://www.w3.org/TR/css-align-3/ this implementation follows + // the resolution of https://github.com/w3c/csswg-drafts/issues/10154 + let resolved_align_content: AlignContent = { + // Inital values from the style system + let mut resolved_align_content = flex_context.align_content; + let mut is_safe = false; // FIXME: retrieve from style system + + // Fallback occurs in two cases: + + // 1. If there is only a single item being aligned and alignment is a distributed alignment keyword + // https://www.w3.org/TR/css-align-3/#distribution-values + if line_count <= 1 || free_space <= Length::zero() { + (resolved_align_content, is_safe) = match resolved_align_content { + AlignContent::Stretch => (AlignContent::FlexStart, true), + AlignContent::SpaceBetween => (AlignContent::FlexStart, true), + AlignContent::SpaceAround => (AlignContent::Center, true), + AlignContent::SpaceEvenly => (AlignContent::Center, true), + _ => (resolved_align_content, is_safe), + } }; - match flex_context.align_content { - AlignContent::SpaceBetween => free_space / (line_count - 1) as CSSFloat, - AlignContent::SpaceAround => free_space / line_count as CSSFloat, - _ => Length::zero(), + // 2. If free space is negative the "safe" alignment variants all fallback to Start alignment + if free_space <= Length::zero() && is_safe { + resolved_align_content = AlignContent::Start; } - }, - _ => Length::zero(), + + resolved_align_content + }; + + // Implement "unsafe" alignment. "safe" alignment is handled by the fallback process above. + cross_start_position_cursor = match resolved_align_content { + AlignContent::Start => Length::zero(), + AlignContent::FlexStart => { + if layout_is_flex_reversed { + free_space + } else { + Length::zero() + } + }, + AlignContent::End => free_space, + AlignContent::FlexEnd => { + if layout_is_flex_reversed { + Length::zero() + } else { + free_space + } + }, + AlignContent::Center => free_space / 2.0, + AlignContent::Stretch => Length::zero(), + AlignContent::SpaceBetween => Length::zero(), + AlignContent::SpaceAround => (free_space / line_count as CSSFloat) / 2.0, + AlignContent::SpaceEvenly => free_space / (line_count + 1) as CSSFloat, + }; + + // TODO: Implement gap property + line_interval = /*gap + */ match resolved_align_content { + AlignContent::Start => Length::zero(), + AlignContent::FlexStart => Length::zero(), + AlignContent::End => Length::zero(), + AlignContent::FlexEnd => Length::zero(), + AlignContent::Center => Length::zero(), + AlignContent::Stretch => Length::zero(), + AlignContent::SpaceBetween => free_space / (line_count - 1) as CSSFloat, + AlignContent::SpaceAround => free_space / line_count as CSSFloat, + AlignContent::SpaceEvenly => free_space / (line_count + 1) as CSSFloat, + }; }; let line_cross_start_positions = flex_lines @@ -698,7 +761,7 @@ impl FlexLine<'_> { flex_context: &mut FlexContext, container_main_size: Length, ) -> FlexLineLayoutResult { - let (item_used_main_sizes, remaining_free_space) = + let (item_used_main_sizes, mut free_space) = self.resolve_flexible_lengths(container_main_size); // https://drafts.csswg.org/css-flexbox/#algo-cross-item @@ -757,35 +820,82 @@ impl FlexLine<'_> { // Distribute any remaining free space // https://drafts.csswg.org/css-flexbox/#algo-main-align let (item_main_margins, free_space_distributed) = - self.resolve_auto_main_margins(remaining_free_space); + self.resolve_auto_main_margins(free_space); + if free_space_distributed { + free_space = Length::zero(); + } // Align the items along the main-axis per justify-content. let item_count = self.items.len(); - let main_start_position = if free_space_distributed { - Length::zero() - } else { - match flex_context.justify_content { - JustifyContent::FlexEnd => remaining_free_space, - JustifyContent::Center => remaining_free_space / 2.0, - JustifyContent::SpaceAround => remaining_free_space / (item_count * 2) as CSSFloat, - _ => Length::zero(), + let layout_is_flex_reversed = flex_context.flex_direction_is_reversed; + + // Implement fallback alignment. + // + // In addition to the spec at https://www.w3.org/TR/css-align-3/ this implementation follows + // the resolution of https://github.com/w3c/csswg-drafts/issues/10154 + let resolved_justify_content: JustifyContent = { + // Inital values from the style system + let mut resolved_justify_content = flex_context.justify_content; + let mut is_safe = false; // FIXME: retrieve from style system + + // Fallback occurs in two cases: + + // 1. If there is only a single item being aligned and alignment is a distributed alignment keyword + // https://www.w3.org/TR/css-align-3/#distribution-values + if item_count <= 1 || free_space <= Length::zero() { + (resolved_justify_content, is_safe) = match resolved_justify_content { + JustifyContent::Stretch => (JustifyContent::FlexStart, true), + JustifyContent::SpaceBetween => (JustifyContent::FlexStart, true), + JustifyContent::SpaceAround => (JustifyContent::Center, true), + JustifyContent::SpaceEvenly => (JustifyContent::Center, true), + _ => (resolved_justify_content, is_safe), + } + }; + + // 2. If free space is negative the "safe" alignment variants all fallback to Start alignment + if free_space <= Length::zero() && is_safe { + resolved_justify_content = JustifyContent::Start; } + + resolved_justify_content }; - let item_main_interval = if free_space_distributed { - Length::zero() - } else { - match flex_context.justify_content { - JustifyContent::SpaceBetween => { - if item_count > 1 { - remaining_free_space / (item_count - 1) as CSSFloat - } else { - Length::zero() - } - }, - JustifyContent::SpaceAround => remaining_free_space / item_count as CSSFloat, - _ => Length::zero(), - } + // Implement "unsafe" alignment. "safe" alignment is handled by the fallback process above. + let main_start_position = match resolved_justify_content { + JustifyContent::Start => Length::zero(), + JustifyContent::FlexStart => { + if layout_is_flex_reversed { + free_space + } else { + Length::zero() + } + }, + JustifyContent::End => free_space, + JustifyContent::FlexEnd => { + if layout_is_flex_reversed { + Length::zero() + } else { + free_space + } + }, + JustifyContent::Center => free_space / 2.0, + JustifyContent::Stretch => Length::zero(), + JustifyContent::SpaceBetween => Length::zero(), + JustifyContent::SpaceAround => (free_space / item_count as CSSFloat) / 2.0, + JustifyContent::SpaceEvenly => free_space / (item_count + 1) as CSSFloat, + }; + + // TODO: Implement gap property + let item_main_interval = /*gap + */ match resolved_justify_content { + JustifyContent::Start => Length::zero(), + JustifyContent::FlexStart => Length::zero(), + JustifyContent::End => Length::zero(), + JustifyContent::FlexEnd => Length::zero(), + JustifyContent::Center => Length::zero(), + JustifyContent::Stretch => Length::zero(), + JustifyContent::SpaceBetween => free_space / (item_count - 1) as CSSFloat, + JustifyContent::SpaceAround => free_space / item_count as CSSFloat, + JustifyContent::SpaceEvenly => free_space / (item_count + 1) as CSSFloat, }; // https://drafts.csswg.org/css-flexbox/#algo-cross-margins diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-001.html.ini index 780fd8650f2..a486c8f2fd9 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-001.html.ini @@ -14,24 +14,14 @@ [Checking align-content: last baseline] expected: FAIL - [Checking align-content: start] - expected: FAIL - [Checking align-content: unsafe flex-start] expected: FAIL [Checking align-content: unsafe end] expected: FAIL - [Checking align-content: end] - expected: FAIL - - [Checking align-content: space-evenly] - expected: FAIL - [Checking align-content: safe center] expected: FAIL [Checking align-content: normal] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-003.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-003.html.ini index 4137fe71ee4..cae41d93086 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-003.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-003.html.ini @@ -14,24 +14,14 @@ [Checking align-content: last baseline] expected: FAIL - [Checking align-content: start] - expected: FAIL - [Checking align-content: unsafe flex-start] expected: FAIL [Checking align-content: unsafe end] expected: FAIL - [Checking align-content: end] - expected: FAIL - - [Checking align-content: space-evenly] - expected: FAIL - [Checking align-content: safe center] expected: FAIL [Checking align-content: normal] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-005.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-005.html.ini index ecbb5dea0b3..b743419a2b3 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-005.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-align-content-005.html.ini @@ -1,10 +1,6 @@ [parse-align-content-005.html] - [Test the value 'inherit' overrides current value ('end')] - expected: FAIL - [Test the value 'inherit' overrides current value ('unsafe center')] expected: FAIL [Test the value 'inherit' overrides current value ('safe start')] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-001.html.ini index e6271d20aac..6e2757a39b0 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-001.html.ini @@ -1,13 +1,7 @@ [parse-justify-content-001.html] - [Checking justify-content: start] - expected: FAIL - [Checking justify-content: safe center] expected: FAIL - [Checking justify-content: end] - expected: FAIL - [Checking justify-content: left] expected: FAIL @@ -20,9 +14,6 @@ [Checking justify-content: safe end] expected: FAIL - [Checking justify-content: space-evenly] - expected: FAIL - [Checking justify-content: safe flex-end] expected: FAIL @@ -31,4 +22,3 @@ [Checking justify-content: unsafe end] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-003.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-003.html.ini index 6df668c18a2..9fc2d0039f3 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-003.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-003.html.ini @@ -1,13 +1,7 @@ [parse-justify-content-003.html] - [Checking justify-content: start] - expected: FAIL - [Checking justify-content: safe center] expected: FAIL - [Checking justify-content: end] - expected: FAIL - [Checking justify-content: left] expected: FAIL @@ -20,9 +14,6 @@ [Checking justify-content: safe end] expected: FAIL - [Checking justify-content: space-evenly] - expected: FAIL - [Checking justify-content: safe flex-end] expected: FAIL @@ -31,4 +22,3 @@ [Checking justify-content: unsafe end] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-005.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-005.html.ini index 516032b7f3a..7ab98752660 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-005.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/parse-justify-content-005.html.ini @@ -1,10 +1,6 @@ [parse-justify-content-005.html] - [Test the value 'inherit' overrides current value ('end')] - expected: FAIL - [Test the value 'inherit' overrides current value ('safe left')] expected: FAIL [Test the value 'inherit' overrides current value ('unsafe center')] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/place-content-shorthand-004.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/place-content-shorthand-004.html.ini deleted file mode 100644 index 79ded4dc0b0..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-align/content-distribution/place-content-shorthand-004.html.ini +++ /dev/null @@ -1,22 +0,0 @@ -[place-content-shorthand-004.html] - [Verify fallback values are invalid] - expected: FAIL - - [Verify numeric values are invalid] - expected: FAIL - - [Verify 'auto' values are invalid] - expected: FAIL - - [Verify self-position values are invalid] - expected: FAIL - - [Verify values are invalid for the justify-content property] - expected: FAIL - - [Verify empty declaration is invalid] - expected: FAIL - - [Verify 'left' and 'right' values are invalid for block/cross axis alignment] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/inheritance.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/inheritance.html.ini index 3c4206c1ae4..efe23207c84 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/inheritance.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/inheritance.html.ini @@ -17,9 +17,6 @@ [Property justify-content has initial value normal] expected: FAIL - [Property justify-content does not inherit] - expected: FAIL - [Property align-content does not inherit] expected: FAIL @@ -46,4 +43,3 @@ [Property column-gap does not inherit] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-computed.html.ini index 165bf87de0b..6cc4974411e 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-computed.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-computed.html.ini @@ -35,15 +35,5 @@ [Property align-content value 'normal'] expected: FAIL - [Property align-content value 'space-evenly'] - expected: FAIL - [Property align-content value 'safe flex-start'] expected: FAIL - - [Property align-content value 'start'] - expected: FAIL - - [Property align-content value 'end'] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-valid.html.ini index e6e43f8ee3f..534aae82912 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-valid.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/align-content-valid.html.ini @@ -5,24 +5,14 @@ [e.style['align-content'\] = "unsafe end" should set the property value] expected: FAIL - [e.style['align-content'\] = "end" should set the property value] - expected: FAIL - [e.style['align-content'\] = "normal" should set the property value] expected: FAIL [e.style['align-content'\] = "baseline" should set the property value] expected: FAIL - [e.style['align-content'\] = "space-evenly" should set the property value] - expected: FAIL - - [e.style['align-content'\] = "start" should set the property value] - expected: FAIL - [e.style['align-content'\] = "safe flex-start" should set the property value] expected: FAIL [e.style['align-content'\] = "last baseline" should set the property value] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-computed.html.ini index 47abd3064e3..de67d888a24 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-computed.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-computed.html.ini @@ -23,12 +23,6 @@ [Property justify-content value 'safe flex-start' computes to 'safe flex-start'] expected: FAIL - [Property justify-content value 'start'] - expected: FAIL - - [Property justify-content value 'end'] - expected: FAIL - [Property justify-content value 'unsafe end'] expected: FAIL @@ -41,9 +35,5 @@ [Property justify-content value 'safe flex-start'] expected: FAIL - [Property justify-content value 'space-evenly'] - expected: FAIL - [Property justify-content value 'left'] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-valid.html.ini index 1e2f46660dd..0fe3fef2683 100644 --- a/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-valid.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-align/parsing/justify-content-valid.html.ini @@ -2,24 +2,14 @@ [e.style['justify-content'\] = "unsafe right" should set the property value] expected: FAIL - [e.style['justify-content'\] = "start" should set the property value] - expected: FAIL - [e.style['justify-content'\] = "normal" should set the property value] expected: FAIL [e.style['justify-content'\] = "unsafe end" should set the property value] expected: FAIL - [e.style['justify-content'\] = "space-evenly" should set the property value] - expected: FAIL - - [e.style['justify-content'\] = "end" should set the property value] - expected: FAIL - [e.style['justify-content'\] = "safe flex-start" should set the property value] expected: FAIL [e.style['justify-content'\] = "left" should set the property value] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-flexbox/align-content-wrap-005.html.ini b/tests/wpt/meta-legacy-layout/css/css-flexbox/align-content-wrap-005.html.ini index 1dd468872d4..6bccebab78f 100644 --- a/tests/wpt/meta-legacy-layout/css/css-flexbox/align-content-wrap-005.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-flexbox/align-content-wrap-005.html.ini @@ -5,9 +5,6 @@ [.flexitem 2] expected: FAIL - [.flexitem 4] - expected: FAIL - [.flexitem 5] expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/align-content-wrap-001.html.ini b/tests/wpt/meta/css/css-flexbox/align-content-wrap-001.html.ini index f1a6baadd38..0dbcc6e6d13 100644 --- a/tests/wpt/meta/css/css-flexbox/align-content-wrap-001.html.ini +++ b/tests/wpt/meta/css/css-flexbox/align-content-wrap-001.html.ini @@ -7,15 +7,3 @@ [.default, .verticalWriting 9] expected: FAIL - - [.default, .verticalWriting 5] - expected: FAIL - - [.default, .verticalWriting 6] - expected: FAIL - - [.default, .verticalWriting 3] - expected: FAIL - - [.default, .verticalWriting 2] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/align-content-wrap-003.html.ini b/tests/wpt/meta/css/css-flexbox/align-content-wrap-003.html.ini index c3076b03f43..75af4a4f3e2 100644 --- a/tests/wpt/meta/css/css-flexbox/align-content-wrap-003.html.ini +++ b/tests/wpt/meta/css/css-flexbox/align-content-wrap-003.html.ini @@ -1,7 +1,4 @@ [align-content-wrap-003.html] - [.flexbox 6] - expected: FAIL - [.flexbox 1] expected: FAIL @@ -11,12 +8,6 @@ [.flexbox 8] expected: FAIL - [.flexbox 12] - expected: FAIL - - [.flexbox 11] - expected: FAIL - [.flexbox 34] expected: FAIL @@ -59,12 +50,6 @@ [.flexbox 22] expected: FAIL - [.flexbox 21] - expected: FAIL - - [.flexbox 20] - expected: FAIL - [.flexbox 44] expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/align-content-wrap-005.html.ini b/tests/wpt/meta/css/css-flexbox/align-content-wrap-005.html.ini index 6bccebab78f..c19c93543f2 100644 --- a/tests/wpt/meta/css/css-flexbox/align-content-wrap-005.html.ini +++ b/tests/wpt/meta/css/css-flexbox/align-content-wrap-005.html.ini @@ -5,6 +5,12 @@ [.flexitem 2] expected: FAIL + [.flexitem 3] + expected: FAIL + + [.flexitem 4] + expected: FAIL + [.flexitem 5] expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml.ini deleted file mode 100644 index 272354a198d..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-justify-content-horiz-002.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml.ini b/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml.ini deleted file mode 100644 index 85bda5dda03..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox-justify-content-horiz-004.xhtml] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-rtl-001.html.ini b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-rtl-001.html.ini index 6829e9c0444..81b7e481fea 100644 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-rtl-001.html.ini +++ b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-rtl-001.html.ini @@ -5,15 +5,15 @@ [.container > div 2] expected: FAIL - [.container > div 4] - expected: FAIL - [.container > div 5] expected: FAIL [.container > div 7] expected: FAIL + [.container > div 8] + expected: FAIL + [.container > div 9] expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacearound-negative.html.ini b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacearound-negative.html.ini deleted file mode 100644 index 6dc942b83b9..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacearound-negative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacearound-negative.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacebetween-negative.html.ini b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacebetween-negative.html.ini deleted file mode 100644 index d24cfe1c8bf..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-spacebetween-negative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-spacebetween-negative.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start-rtl.html.ini b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start-rtl.html.ini deleted file mode 100644 index 4c4bce8a346..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start-rtl.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-start-rtl.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start.html.ini b/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start.html.ini deleted file mode 100644 index 95603d8cc87..00000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-start.html] - expected: FAIL