layout: Fix the pseudo for anonymous tables (#31578)

Anonymous tables should not use legacy pseudos, as the legacy layout
engine had them inherit lots of random properites that lead to bad
layout in the new layout engine.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Martin Robinson 2024-03-08 11:32:51 +01:00 committed by GitHub
parent a5a0e1cb3c
commit 49ae9bb442
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 19 additions and 51 deletions

28
Cargo.lock generated
View file

@ -1208,7 +1208,7 @@ dependencies = [
[[package]] [[package]]
name = "derive_common" name = "derive_common"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
@ -3304,7 +3304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"windows-targets 0.48.5", "windows-targets 0.52.0",
] ]
[[package]] [[package]]
@ -3463,7 +3463,7 @@ dependencies = [
[[package]] [[package]]
name = "malloc_size_of" name = "malloc_size_of"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"accountable-refcell", "accountable-refcell",
"app_units", "app_units",
@ -5075,7 +5075,7 @@ dependencies = [
[[package]] [[package]]
name = "selectors" name = "selectors"
version = "0.24.0" version = "0.24.0"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"cssparser", "cssparser",
@ -5363,7 +5363,7 @@ dependencies = [
[[package]] [[package]]
name = "servo_arc" name = "servo_arc"
version = "0.2.0" version = "0.2.0"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"nodrop", "nodrop",
"serde", "serde",
@ -5373,7 +5373,7 @@ dependencies = [
[[package]] [[package]]
name = "servo_atoms" name = "servo_atoms"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"string_cache", "string_cache",
"string_cache_codegen", "string_cache_codegen",
@ -5579,7 +5579,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]] [[package]]
name = "size_of_test" name = "size_of_test"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"static_assertions", "static_assertions",
] ]
@ -5705,7 +5705,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]] [[package]]
name = "static_prefs" name = "static_prefs"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
[[package]] [[package]]
name = "str-buf" name = "str-buf"
@ -5748,7 +5748,7 @@ dependencies = [
[[package]] [[package]]
name = "style" name = "style"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"app_units", "app_units",
"arrayvec", "arrayvec",
@ -5806,7 +5806,7 @@ dependencies = [
[[package]] [[package]]
name = "style_config" name = "style_config"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
] ]
@ -5814,7 +5814,7 @@ dependencies = [
[[package]] [[package]]
name = "style_derive" name = "style_derive"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"darling", "darling",
"derive_common", "derive_common",
@ -5845,7 +5845,7 @@ dependencies = [
[[package]] [[package]]
name = "style_traits" name = "style_traits"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"app_units", "app_units",
"bitflags 1.3.2", "bitflags 1.3.2",
@ -6188,7 +6188,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]] [[package]]
name = "to_shmem" name = "to_shmem"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"cssparser", "cssparser",
"servo_arc", "servo_arc",
@ -6201,7 +6201,7 @@ dependencies = [
[[package]] [[package]]
name = "to_shmem_derive" name = "to_shmem_derive"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#3f129fb95a345f0057a6b72901eb7eb795840a76" source = "git+https://github.com/servo/stylo.git?branch=2023-07-23#ca5648ca155a7cfc23dfd7fec61befe82f866879"
dependencies = [ dependencies = [
"darling", "darling",
"derive_common", "derive_common",

View file

@ -84,9 +84,7 @@ impl Table {
.stylist .stylist
.style_for_anonymous::<Node::ConcreteElement>( .style_for_anonymous::<Node::ConcreteElement>(
&context.shared_context().guards, &context.shared_context().guards,
// TODO: This should be updated for Layout 2020 once we've determined &PseudoElement::ServoAnonymousTable,
// which styles should be inherited for tables.
&PseudoElement::ServoLegacyAnonymousTable,
&parent_info.style, &parent_info.style,
); );
let anonymous_info = parent_info.new_replacing_style(anonymous_style.clone()); let anonymous_info = parent_info.new_replacing_style(anonymous_style.clone());

View file

@ -230,6 +230,10 @@ svg > * {
overflow: visible; overflow: visible;
} }
*|*::-servo-anonymous-table {
display: table;
}
*|*::-servo-anonymous-table-row { *|*::-servo-anonymous-table-row {
display: table-row; display: table-row;
position: static; position: static;

View file

@ -1,2 +0,0 @@
[box-generation-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[box-generation-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[blocks-017.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-in-inline-001.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-spacing-applies-to-014.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[table-pseudo-in-part3-1.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[dynamic-table-cell-height.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[fixup-dynamic-anonymous-inline-table-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[fixup-dynamic-anonymous-inline-table-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[percentages-grandchildren-quirks-mode-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[transform-table-011.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[outline-005.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[outline-011.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[outline-019.html]
expected: FAIL

View file

@ -41,12 +41,6 @@
[float: left - available width: 200px] [float: left - available width: 200px]
expected: FAIL expected: FAIL
[display: table-row - available width: 300px]
expected: FAIL
[display: table-cell - available width: 300px]
expected: FAIL
[float: left - available width: 300px] [float: left - available width: 300px]
expected: FAIL expected: FAIL