mirror of
https://github.com/servo/servo.git
synced 2025-06-06 00:25:37 +00:00
layout: Add initial support for the ::marker
pseudo-element (#36317)
This change adds support for the `::marker` pseudo-element and ensure that markers are cached into the box tree. This is only initial support, there are a few things missing such as animations, transitions, and support the `content` CSS property. Testing: There are WPT tests for this change. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
a5c547259f
commit
2b63e60e8f
27 changed files with 282 additions and 276 deletions
30
Cargo.lock
generated
30
Cargo.lock
generated
|
@ -1065,7 +1065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"windows-sys 0.48.0",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4331,7 +4331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"windows-targets 0.48.5",
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -6537,7 +6537,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "selectors"
|
||||
version = "0.27.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"cssparser",
|
||||
|
@ -6822,7 +6822,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo_arc"
|
||||
version = "0.4.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"stable_deref_trait",
|
||||
|
@ -7274,7 +7274,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo"
|
||||
version = "0.2.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"app_units",
|
||||
"arrayvec",
|
||||
|
@ -7332,7 +7332,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo_atoms"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"string_cache",
|
||||
"string_cache_codegen",
|
||||
|
@ -7341,12 +7341,12 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo_config"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
|
||||
[[package]]
|
||||
name = "stylo_derive"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"proc-macro2",
|
||||
|
@ -7358,7 +7358,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo_dom"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"stylo_malloc_size_of",
|
||||
|
@ -7367,7 +7367,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo_malloc_size_of"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"app_units",
|
||||
"cssparser",
|
||||
|
@ -7384,12 +7384,12 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "stylo_static_prefs"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
|
||||
[[package]]
|
||||
name = "stylo_traits"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"app_units",
|
||||
"bitflags 2.9.0",
|
||||
|
@ -7772,7 +7772,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "to_shmem"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"cssparser",
|
||||
"servo_arc",
|
||||
|
@ -7785,7 +7785,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "to_shmem_derive"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#127952e9cc0d881c08ac5c41b626eb38674432e9"
|
||||
source = "git+https://github.com/servo/stylo?branch=2025-03-15#53bd9b280e15d8b55636b93001083d914ee2cb6b"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"proc-macro2",
|
||||
|
@ -8853,7 +8853,7 @@ version = "0.1.9"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys 0.48.0",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -34,6 +34,7 @@ pub struct InnerDOMLayoutData {
|
|||
pub(super) self_box: ArcRefCell<Option<LayoutBox>>,
|
||||
pub(super) pseudo_before_box: ArcRefCell<Option<LayoutBox>>,
|
||||
pub(super) pseudo_after_box: ArcRefCell<Option<LayoutBox>>,
|
||||
pub(super) pseudo_marker_box: ArcRefCell<Option<LayoutBox>>,
|
||||
}
|
||||
|
||||
/// A box that is stored in one of the `DOMLayoutData` slots.
|
||||
|
@ -222,6 +223,7 @@ where
|
|||
let cell = match pseudo_element_type {
|
||||
PseudoElement::Before => &data.pseudo_before_box,
|
||||
PseudoElement::After => &data.pseudo_after_box,
|
||||
PseudoElement::Marker => &data.pseudo_marker_box,
|
||||
_ => unreachable!(
|
||||
"Asked for box slot for unsupported pseudo-element: {:?}",
|
||||
pseudo_element_type
|
||||
|
@ -235,6 +237,7 @@ where
|
|||
let cell = match pseudo_element_type {
|
||||
PseudoElement::Before => &data.pseudo_before_box,
|
||||
PseudoElement::After => &data.pseudo_after_box,
|
||||
PseudoElement::Marker => &data.pseudo_marker_box,
|
||||
_ => unreachable!(
|
||||
"Asked for box slot for unsupported pseudo-element: {:?}",
|
||||
pseudo_element_type
|
||||
|
@ -248,6 +251,7 @@ where
|
|||
*data.self_box.borrow_mut() = None;
|
||||
*data.pseudo_before_box.borrow_mut() = None;
|
||||
*data.pseudo_after_box.borrow_mut() = None;
|
||||
*data.pseudo_marker_box.borrow_mut() = None;
|
||||
// Stylo already takes care of removing all layout data
|
||||
// for DOM descendants of elements with `display: none`.
|
||||
}
|
||||
|
|
|
@ -236,6 +236,10 @@ fn traverse_element<'dom, Node>(
|
|||
) where
|
||||
Node: NodeExt<'dom>,
|
||||
{
|
||||
// Clear any existing pseudo-element box slot, because markers are not handled like
|
||||
// `::before`` and `::after`. They are processed during box tree creation.
|
||||
element.unset_pseudo_element_box(PseudoElement::Marker);
|
||||
|
||||
let replaced = ReplacedContents::for_element(element, context);
|
||||
let style = element.style(context);
|
||||
match Display::from(style.get_box().display) {
|
||||
|
|
|
@ -393,7 +393,7 @@ where
|
|||
is_list_item: false,
|
||||
},
|
||||
NonReplacedContents::OfPseudoElement(contents).into(),
|
||||
BoxSlot::dummy(),
|
||||
info.node.pseudo_element_box_slot(PseudoElement::Marker),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -405,7 +405,7 @@ where
|
|||
) {
|
||||
self.block_level_boxes.push(BlockLevelJob {
|
||||
info: info.clone(),
|
||||
box_slot: BoxSlot::dummy(),
|
||||
box_slot: info.node.pseudo_element_box_slot(PseudoElement::Marker),
|
||||
kind: BlockLevelCreator::OutsideMarker {
|
||||
contents,
|
||||
list_item_style,
|
||||
|
|
|
@ -19,11 +19,7 @@ pub(crate) fn make_marker<'dom, Node>(
|
|||
where
|
||||
Node: NodeExt<'dom>,
|
||||
{
|
||||
// TODO: use `PseudoElement::Marker` when we add it.
|
||||
let marker_info = info.pseudo(
|
||||
context,
|
||||
style::selector_parser::PseudoElement::ServoLegacyText,
|
||||
)?;
|
||||
let marker_info = info.pseudo(context, style::selector_parser::PseudoElement::Marker)?;
|
||||
let style = &marker_info.style;
|
||||
let list_style = style.get_list();
|
||||
|
||||
|
|
|
@ -131,7 +131,7 @@ pub fn process_resolved_style_request<'dom>(
|
|||
None => layout_element,
|
||||
};
|
||||
|
||||
let style = &*layout_element.resolved_style();
|
||||
let style = &*layout_element.style(context);
|
||||
let longhand_id = match *property {
|
||||
PropertyId::NonCustom(id) => match id.longhand_or_shorthand() {
|
||||
Ok(longhand_id) => longhand_id,
|
||||
|
@ -1122,7 +1122,7 @@ where
|
|||
let element = node.as_element().unwrap();
|
||||
let parent_style = if node.is_connected() {
|
||||
if element.has_data() {
|
||||
node.to_threadsafe().as_element().unwrap().resolved_style()
|
||||
node.to_threadsafe().as_element().unwrap().style(context)
|
||||
} else {
|
||||
let mut tlc = ThreadLocalStyleContext::new();
|
||||
let mut context = StyleContext {
|
||||
|
|
|
@ -1262,6 +1262,7 @@ impl WindowMethods<crate::DomTypeHolder> for Window {
|
|||
Some(PseudoElement::After)
|
||||
},
|
||||
Some(ref pseudo) if pseudo == "::selection" => Some(PseudoElement::Selection),
|
||||
Some(ref pseudo) if pseudo == "::marker" => Some(PseudoElement::Marker),
|
||||
Some(ref pseudo) if pseudo.starts_with(':') => {
|
||||
// Step 3.2: If type is failure, or is a ::slotted() or ::part()
|
||||
// pseudo-element, let obj be null.
|
||||
|
|
|
@ -363,22 +363,6 @@ pub trait ThreadSafeLayoutElement<'dom>:
|
|||
.clone()
|
||||
}
|
||||
|
||||
/// Returns the already resolved style of the node.
|
||||
///
|
||||
/// This differs from `style(ctx)` in that if the pseudo-element has not yet
|
||||
/// been computed it would panic.
|
||||
///
|
||||
/// This should be used just for querying layout, or when we know the
|
||||
/// element style is precomputed, not from general layout itself.
|
||||
#[inline]
|
||||
fn resolved_style(&self) -> Arc<ComputedValues> {
|
||||
let data = self.style_data();
|
||||
match self.pseudo_element() {
|
||||
None => data.styles.primary().clone(),
|
||||
Some(pseudo_element) => data.styles.pseudos.get(&pseudo_element).unwrap().clone(),
|
||||
}
|
||||
}
|
||||
|
||||
fn is_shadow_host(&self) -> bool;
|
||||
|
||||
/// Returns whether this node is a body element of an html element root
|
||||
|
|
|
@ -174,14 +174,6 @@ svg > * {
|
|||
writing-mode: inherit;
|
||||
}
|
||||
|
||||
/* style for text node. */
|
||||
*|*::-servo-legacy-text {
|
||||
text-overflow: inherit;
|
||||
overflow: inherit;
|
||||
padding: unset;
|
||||
margin: unset;
|
||||
}
|
||||
|
||||
*|*::-servo-legacy-table-wrapper {
|
||||
display: table;
|
||||
border: none;
|
||||
|
|
|
@ -422,3 +422,12 @@ iframe:fullscreen {
|
|||
border:none !important;
|
||||
padding:0 !important;
|
||||
}
|
||||
|
||||
/* https://drafts.csswg.org/css-lists-3/#ua-stylesheet */
|
||||
*::marker {
|
||||
text-align: end;
|
||||
text-transform: none;
|
||||
unicode-bidi: isolate;
|
||||
font-variant-numeric: tabular-nums;
|
||||
white-space: pre;
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[position-absolute-dynamic-list-marker.html]
|
||||
expected: FAIL
|
2
tests/wpt/meta/css/css-pseudo/marker-animate-002.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-pseudo/marker-animate-002.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
[marker-animate-002.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[marker-color.html]
|
||||
expected: FAIL
|
|
@ -1,30 +0,0 @@
|
|||
[marker-computed-content.html]
|
||||
[Computed 'content' for list-item ::marker, variant string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for list-item ::marker, variant image]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for list-item ::marker, variant none]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for non-list-item ::marker, variant string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for non-list-item ::marker, variant image]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for non-list-item ::marker, variant none]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for list-item ::marker, variant default]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for list-item ::marker, variant normal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for non-list-item ::marker, variant default]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'content' for non-list-item ::marker, variant normal]
|
||||
expected: FAIL
|
|
@ -8,9 +8,6 @@
|
|||
[String ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[::marker with no box due to 'list-style']
|
||||
expected: FAIL
|
||||
|
||||
[::marker with custom string contents]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -19,6 +16,3 @@
|
|||
|
||||
[::marker with custom string and image contents]
|
||||
expected: FAIL
|
||||
|
||||
[::marker with no box due to 'content']
|
||||
expected: FAIL
|
||||
|
|
|
@ -2,95 +2,47 @@
|
|||
[Computed value of 'font-variant-numeric' for outside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for outside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for outside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for outside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for outside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for outside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for outside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for outside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for outside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for outside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for outside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for outside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for inside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for inside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for inside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for inside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for inside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for inside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for inside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for inside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for inside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'font-variant-numeric' for inside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-transform' for inside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'text-indent' for inside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for outside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for outside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for outside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for outside marker]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for inside symbol]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for inside decimal]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for inside string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed value of 'unicode-bidi' for inside marker]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,16 +1,4 @@
|
|||
[marker-display-computed.html]
|
||||
[Computed 'display' for inside ::marker, variant default]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'display' for inside ::marker, variant color]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'display' for inside ::marker, variant string]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'display' for inside ::marker, variant content]
|
||||
expected: FAIL
|
||||
|
||||
[Computed 'display' for outside ::marker, variant default]
|
||||
expected: FAIL
|
||||
|
||||
|
|
2
tests/wpt/meta/css/css-pseudo/marker-letter-spacing.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-pseudo/marker-letter-spacing.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
[marker-letter-spacing.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[marker-line-height.html]
|
||||
expected: FAIL
|
|
@ -1,6 +0,0 @@
|
|||
[marker-variable-computed-style.html]
|
||||
[getComputedStyle() for opacity defined by variable in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[getComputedStyle() for color defined by variable in ::marker]
|
||||
expected: FAIL
|
2
tests/wpt/meta/css/css-pseudo/marker-word-spacing.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-pseudo/marker-word-spacing.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
[marker-word-spacing.html]
|
||||
expected: FAIL
|
|
@ -1,2 +1,237 @@
|
|||
[marker-supported-properties-in-animation.html]
|
||||
expected: ERROR
|
||||
[Animation of font in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-family in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-feature-settings in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-kerning in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-size in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-size-adjust in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-stretch in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-synthesis in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-synthesis-small-caps in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-synthesis-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-synthesis-weight in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant-caps in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant-east-asian in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant-ligatures in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant-numeric in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-variant-position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of font-weight in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of line-height in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of white-space in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of color in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-combine-upright in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of content in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of hyphens in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of letter-spacing in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of line-break in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of overflow-wrap in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of tab-size in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-transform in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of word-break in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of word-spacing in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-decoration-skip-ink in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-emphasis in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-emphasis-color in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-emphasis-position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-emphasis-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of text-shadow in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of cursor in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Animation of list-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-feature-settings in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-kerning in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-size in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-size-adjust in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-stretch in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-synthesis in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-synthesis-small-caps in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-synthesis-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-synthesis-weight in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant-caps in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant-east-asian in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant-ligatures in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant-numeric in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-variant-position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of font-weight in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of line-height in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of color in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-combine-upright in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of hyphens in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of letter-spacing in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of line-break in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of tab-size in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of word-break in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of word-spacing in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-decoration-skip-ink in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-emphasis in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-emphasis-color in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-emphasis-position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-emphasis-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of text-shadow in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of display in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of float in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of list-style in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of list-style-image in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of list-style-position in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Transition of list-style-type in ::marker]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,28 +1,13 @@
|
|||
[marker-supported-properties.html]
|
||||
[Property font value 'italic small-caps 900 expanded 25px / 50px Ahem' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-family value 'Ahem' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-feature-settings value '"smcp"' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-kerning value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-size value '25px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-size-adjust value '1' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-stretch value 'expanded' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-style value 'italic' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-synthesis value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -35,12 +20,6 @@
|
|||
[Property font-synthesis-weight value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-variant value 'small-caps' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-variant-caps value 'small-caps' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-variant-east-asian value 'full-width' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -53,99 +32,24 @@
|
|||
[Property font-variant-position value 'sub' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-weight value '900' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property line-height value '50px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property white-space value 'nowrap' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property color value 'rgb(0, 100, 200)' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property text-combine-upright value 'all' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property unicode-bidi value 'plaintext' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property direction value 'rtl' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property content value '"foo"' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation value '1s linear 2s infinite alternate forwards paused anim' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-delay value '1s' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-direction value 'alternate' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-duration value '2s' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-fill-mode value 'forwards' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-iteration-count value 'infinite' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-name value 'anim' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-play-state value 'paused' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-timing-function value 'linear' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property animation-composition value 'add' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property transition value 'display 1s linear 2s' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property transition-delay value '1s' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property transition-duration value '2s' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property transition-property value 'display' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property transition-timing-function value 'linear' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property hyphens value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property letter-spacing value '10px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property line-break value 'anywhere' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property overflow-wrap value 'anywhere' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property tab-size value '10px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property text-transform value 'uppercase' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property word-break value 'break-word' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property word-spacing value '10px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property text-decoration-skip-ink value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -161,9 +65,6 @@
|
|||
[Property text-emphasis-style value 'dot' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property text-shadow value 'rgb(0, 255, 0) 1px 2px 3px' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property display value 'none' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -184,6 +85,3 @@
|
|||
|
||||
[Property list-style-type value 'decimal' in ::marker]
|
||||
expected: FAIL
|
||||
|
||||
[Property cursor value 'move' in ::marker]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,13 +1,4 @@
|
|||
[tree-abiding-pseudo-elements.html]
|
||||
["::marker" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["*::marker" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["foo.bar[baz\]::marker" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["::placeholder" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[non-rendered-element-004.tentative.html]
|
||||
expected: TIMEOUT
|
||||
[Transitions on ::marker pseudo-elements are canceled when the parent display type is no longer list-item]
|
||||
expected: FAIL
|
||||
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -10,6 +10,3 @@
|
|||
|
||||
[ch in pseudo-element ::first-line should be recalculated after loading a web font]
|
||||
expected: FAIL
|
||||
|
||||
[ch in pseudo-element ::marker should be recalculated after loading a web font]
|
||||
expected: FAIL
|
||||
|
|
|
@ -26,9 +26,6 @@
|
|||
[Unknown pseudo-element with a known identifier: highlight(name)]
|
||||
expected: PRECONDITION_FAILED
|
||||
|
||||
[Unknown pseudo-element with a known identifier: marker]
|
||||
expected: PRECONDITION_FAILED
|
||||
|
||||
[Unknown pseudo-element with a known identifier: placeholder]
|
||||
expected: PRECONDITION_FAILED
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue