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 | 190 ++++++++++++++---- .../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, 181 insertions(+), 221 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 1503ed81b1a9..59df99f7bce6 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 f4e35a476378..db5f20fd35b6 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 71488d833814..393ce99760bb 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 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; - - 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(), + let mut line_interval = Length::zero(); + + 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; + + // 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 780fd8650f24..a486c8f2fd99 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 4137fe71ee4c..cae41d930860 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 ecbb5dea0b36..b743419a2b30 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 e6271d20aac6..6e2757a39b08 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 6df668c18a24..9fc2d0039f3a 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 516032b7f3ac..7ab987526606 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 79ded4dc0b02..000000000000 --- 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 3c4206c1ae45..efe23207c848 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 165bf87de0b0..6cc4974411e5 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 e6e43f8ee3f0..534aae829124 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 47abd3064e3e..de67d888a244 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 1e2f46660dd2..0fe3fef26837 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 1dd468872d41..6bccebab78f3 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 f1a6baadd383..0dbcc6e6d137 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 c3076b03f433..75af4a4f3e25 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 6bccebab78f3..c19c93543f24 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 272354a198da..000000000000 --- 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 85bda5dda038..000000000000 --- 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 6829e9c0444c..81b7e481fea0 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 6dc942b83b94..000000000000 --- 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 d24cfe1c8bf7..000000000000 --- 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 4c4bce8a3463..000000000000 --- 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 95603d8cc873..000000000000 --- a/tests/wpt/meta/css/css-flexbox/flexbox_justifycontent-start.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexbox_justifycontent-start.html] - expected: FAIL