mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
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
This commit is contained in:
parent
02b3dd0b61
commit
1d6be62454
26 changed files with 179 additions and 219 deletions
26
Cargo.lock
generated
26
Cargo.lock
generated
|
@ -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",
|
||||
|
|
18
Cargo.toml
18
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"
|
||||
|
|
|
@ -48,6 +48,8 @@ struct FlexContext<'a> {
|
|||
container_min_cross_size: Length,
|
||||
container_max_cross_size: Option<Length>,
|
||||
flex_axis: FlexAxis,
|
||||
flex_direction_is_reversed: bool,
|
||||
flex_wrap_reverse: bool,
|
||||
main_start_cross_start_sides_are: MainStartCrossStart,
|
||||
container_definite_inner_size: FlexRelativeVec2<Option<Length>>,
|
||||
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 => {
|
||||
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;
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
},
|
||||
_ => 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),
|
||||
}
|
||||
};
|
||||
|
||||
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
|
||||
// 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
|
||||
};
|
||||
|
||||
// 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::SpaceAround => remaining_free_space / item_count as CSSFloat,
|
||||
_ => 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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 <baseline-position> 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -5,9 +5,6 @@
|
|||
[.flexitem 2]
|
||||
expected: FAIL
|
||||
|
||||
[.flexitem 4]
|
||||
expected: FAIL
|
||||
|
||||
[.flexitem 5]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
[.flexitem 2]
|
||||
expected: FAIL
|
||||
|
||||
[.flexitem 3]
|
||||
expected: FAIL
|
||||
|
||||
[.flexitem 4]
|
||||
expected: FAIL
|
||||
|
||||
[.flexitem 5]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox-justify-content-horiz-002.xhtml]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox-justify-content-horiz-004.xhtml]
|
||||
expected: FAIL
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox_justifycontent-spacearound-negative.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox_justifycontent-spacebetween-negative.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox_justifycontent-start-rtl.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[flexbox_justifycontent-start.html]
|
||||
expected: FAIL
|
Loading…
Add table
Add a link
Reference in a new issue