Upgrade Stylo to 2025-02-03 (#35289)

* Upgrade Stylo to 2025-02-03

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Fixup for https://phabricator.services.mozilla.com/D233218

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Fixup for https://phabricator.services.mozilla.com/D233758

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Fixup for https://phabricator.services.mozilla.com/D231255

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Update test expectations

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

---------

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Oriol Brufau 2025-02-05 03:35:58 +01:00 committed by GitHub
parent e2bb772669
commit fdbfecf7dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 44 additions and 197 deletions

24
Cargo.lock generated
View file

@ -1668,7 +1668,7 @@ dependencies = [
[[package]] [[package]]
name = "dom" name = "dom"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.8.0",
"malloc_size_of", "malloc_size_of",
@ -4446,7 +4446,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"app_units", "app_units",
"cssparser", "cssparser",
@ -6460,7 +6460,7 @@ dependencies = [
[[package]] [[package]]
name = "selectors" name = "selectors"
version = "0.26.0" version = "0.26.0"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.8.0",
"cssparser", "cssparser",
@ -6745,7 +6745,7 @@ dependencies = [
[[package]] [[package]]
name = "servo_arc" name = "servo_arc"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"serde", "serde",
"stable_deref_trait", "stable_deref_trait",
@ -6754,7 +6754,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"string_cache", "string_cache",
"string_cache_codegen", "string_cache_codegen",
@ -7123,7 +7123,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
[[package]] [[package]]
name = "strck" name = "strck"
@ -7204,7 +7204,7 @@ dependencies = [
[[package]] [[package]]
name = "style" name = "style"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"app_units", "app_units",
"arrayvec", "arrayvec",
@ -7262,7 +7262,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
] ]
@ -7270,7 +7270,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
@ -7300,7 +7300,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?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"app_units", "app_units",
"bitflags 2.8.0", "bitflags 2.8.0",
@ -7706,7 +7706,7 @@ dependencies = [
[[package]] [[package]]
name = "to_shmem" name = "to_shmem"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"cssparser", "cssparser",
"servo_arc", "servo_arc",
@ -7719,7 +7719,7 @@ dependencies = [
[[package]] [[package]]
name = "to_shmem_derive" name = "to_shmem_derive"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/stylo?branch=2025-01-02#816c35500ca077f88b5d38a3bcc79c8c568d307a" source = "git+https://github.com/servo/stylo?branch=2025-02-03#4359cb61ff09a1db6f11d523aad6796395d7b5ba"
dependencies = [ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",

View file

@ -114,25 +114,25 @@ rustls-pemfile = "2.0"
rustls-pki-types = "1.11" rustls-pki-types = "1.11"
script_layout_interface = { path = "components/shared/script_layout" } script_layout_interface = { path = "components/shared/script_layout" }
script_traits = { path = "components/shared/script" } script_traits = { path = "components/shared/script" }
selectors = { git = "https://github.com/servo/stylo", branch = "2025-01-02" } selectors = { git = "https://github.com/servo/stylo", branch = "2025-02-03" }
serde = "1.0.217" serde = "1.0.217"
serde_bytes = "0.11" serde_bytes = "0.11"
serde_json = "1.0" serde_json = "1.0"
servo-media = { git = "https://github.com/servo/media" } servo-media = { git = "https://github.com/servo/media" }
servo-media-dummy = { 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-media-gstreamer = { git = "https://github.com/servo/media" }
servo_arc = { git = "https://github.com/servo/stylo", branch = "2025-01-02", features = ["servo"] } servo_arc = { git = "https://github.com/servo/stylo", branch = "2025-02-03", features = ["servo"] }
servo_atoms = { git = "https://github.com/servo/stylo", branch = "2025-01-02" } servo_atoms = { git = "https://github.com/servo/stylo", branch = "2025-02-03" }
smallbitvec = "2.5.3" smallbitvec = "2.5.3"
smallvec = "1.13" smallvec = "1.13"
static_assertions = "1.1" static_assertions = "1.1"
string_cache = "0.8" string_cache = "0.8"
string_cache_codegen = "0.5" string_cache_codegen = "0.5"
style = { git = "https://github.com/servo/stylo", branch = "2025-01-02", features = ["servo"] } style = { git = "https://github.com/servo/stylo", branch = "2025-02-03", features = ["servo"] }
style_config = { git = "https://github.com/servo/stylo", branch = "2025-01-02" } style_config = { git = "https://github.com/servo/stylo", branch = "2025-02-03" }
style_dom = { git = "https://github.com/servo/stylo", package = "dom", branch = "2025-01-02" } style_dom = { git = "https://github.com/servo/stylo", package = "dom", branch = "2025-02-03" }
style_malloc_size_of = { package = "malloc_size_of", git = "https://github.com/servo/stylo", branch = "2025-01-02", features = ["servo"] } style_malloc_size_of = { package = "malloc_size_of", git = "https://github.com/servo/stylo", branch = "2025-02-03", features = ["servo"] }
style_traits = { git = "https://github.com/servo/stylo", branch = "2025-01-02", features = ["servo"] } style_traits = { git = "https://github.com/servo/stylo", branch = "2025-02-03", features = ["servo"] }
surfman = { git = "https://github.com/servo/surfman", rev = "300789ddbda45c89e9165c31118bf1c4c07f89f6", features = ["chains"] } surfman = { git = "https://github.com/servo/surfman", rev = "300789ddbda45c89e9165c31118bf1c4c07f89f6", features = ["chains"] }
syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] } syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
synstructure = "0.13" synstructure = "0.13"
@ -141,7 +141,7 @@ thin-vec = "0.2.13"
tikv-jemalloc-sys = "0.6.0" tikv-jemalloc-sys = "0.6.0"
tikv-jemallocator = "0.6.0" tikv-jemallocator = "0.6.0"
time_03 = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] } time_03 = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
to_shmem = { git = "https://github.com/servo/stylo", branch = "2025-01-02" } to_shmem = { git = "https://github.com/servo/stylo", branch = "2025-02-03" }
tokio = "1" tokio = "1"
tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
tower-service = "0.3" tower-service = "0.3"

View file

@ -106,7 +106,7 @@ fn convert_gradient_stops(
}) })
.collect::<Vec<_>>(); .collect::<Vec<_>>();
assert!(stop_items.len() >= 2); assert!(!stop_items.is_empty());
// Run the algorithm from // Run the algorithm from
// https://drafts.csswg.org/css-images-3/#color-stop-syntax // https://drafts.csswg.org/css-images-3/#color-stop-syntax
@ -198,6 +198,9 @@ fn convert_gradient_stops(
color: style.resolve_color(stop.color).to_layout(), color: style.resolve_color(stop.color).to_layout(),
}) })
} }
if stop_items.len() == 1 {
stops.push(stops.stops()[0])
}
stops stops
} }

View file

@ -408,7 +408,7 @@ fn gradient_items_to_color_stops(
/// <https://drafts.csswg.org/css-images-4/#color-stop-fixup> /// <https://drafts.csswg.org/css-images-4/#color-stop-fixup>
fn fixup_stops(stops: &mut [ColorStop<ColorF, f32>]) -> Vec<wr::GradientStop> { fn fixup_stops(stops: &mut [ColorStop<ColorF, f32>]) -> Vec<wr::GradientStop> {
assert!(stops.len() >= 2); assert!(!stops.is_empty());
// https://drafts.csswg.org/css-images-4/#color-stop-fixup // https://drafts.csswg.org/css-images-4/#color-stop-fixup
if let first_position @ None = &mut stops.first_mut().unwrap().position { if let first_position @ None = &mut stops.first_mut().unwrap().position {
@ -438,6 +438,9 @@ fn fixup_stops(stops: &mut [ColorStop<ColorF, f32>]) -> Vec<wr::GradientStop> {
offset: first_stop_position, offset: first_stop_position,
color: first.color, color: first.color,
}); });
if stops.len() == 1 {
wr_stops.push(wr_stops[0]);
}
let mut last_positioned_stop_index = 0; let mut last_positioned_stop_index = 0;
let mut last_positioned_stop_position = first_stop_position; let mut last_positioned_stop_position = first_stop_position;

View file

@ -7,6 +7,7 @@ use bitflags::bitflags;
use fonts::{FontMetrics, GlyphStore}; use fonts::{FontMetrics, GlyphStore};
use itertools::Either; use itertools::Either;
use servo_arc::Arc; use servo_arc::Arc;
use style::computed_values::position::T as Position;
use style::computed_values::white_space_collapse::T as WhiteSpaceCollapse; use style::computed_values::white_space_collapse::T as WhiteSpaceCollapse;
use style::properties::ComputedValues; use style::properties::ComputedValues;
use style::values::generics::box_::{GenericVerticalAlign, VerticalAlignKeyword}; use style::values::generics::box_::{GenericVerticalAlign, VerticalAlignKeyword};
@ -419,7 +420,7 @@ impl LineItemLayout<'_, '_> {
// Relative adjustment should not affect the rest of line layout, so we can // Relative adjustment should not affect the rest of line layout, so we can
// do it right before creating the Fragment. // do it right before creating the Fragment.
let style = &inline_box.style; let style = &inline_box.style;
if style.clone_position().is_relative() { if style.get_box().position == Position::Relative {
content_rect.start_corner += relative_adjustement(style, self.layout.containing_block); content_rect.start_corner += relative_adjustement(style, self.layout.containing_block);
} }
@ -598,7 +599,7 @@ impl LineItemLayout<'_, '_> {
padding_border_margin_sides.block_start, padding_border_margin_sides.block_start,
}; };
if atomic.fragment.style.clone_position().is_relative() { if atomic.fragment.style.get_box().position == Position::Relative {
atomic_offset += atomic_offset +=
relative_adjustement(&atomic.fragment.style, self.layout.containing_block); relative_adjustement(&atomic.fragment.style, self.layout.containing_block);
} }

View file

@ -33,6 +33,7 @@ use style::selector_parser::{
SelectorImpl, SelectorImpl,
}; };
use style::shared_lock::Locked as StyleLocked; use style::shared_lock::Locked as StyleLocked;
use style::stylesheets::scope_rule::ImplicitScopeRoot;
use style::values::computed::Display; use style::values::computed::Display;
use style::values::{AtomIdent, AtomString}; use style::values::{AtomIdent, AtomString};
use style::CaseSensitivityExt; use style::CaseSensitivityExt;
@ -498,16 +499,22 @@ impl<'dom> style::dom::TElement for ServoLayoutElement<'dom> {
{ {
} }
/// Convert an opaque element back into the element. /// Returns the implicit scope root for given sheet index and host.
fn unopaque(opaque: ::selectors::OpaqueElement) -> Self { fn implicit_scope_for_sheet_in_shadow_root(
unsafe { opaque_host: ::selectors::OpaqueElement,
let ptr = opaque.as_const_ptr::<JSObject>(); sheet_index: usize,
) -> Option<ImplicitScopeRoot> {
// As long as this "unopaqued" element does not escape this function, we're not leaking
// potentially-mutable elements from opaque elements.
let host = unsafe {
let ptr = opaque_host.as_const_ptr::<JSObject>();
let untrusted_address = UntrustedNodeAddress::from_id(ptr as usize); let untrusted_address = UntrustedNodeAddress::from_id(ptr as usize);
let node = Node::from_untrusted_node_address(untrusted_address); let node = Node::from_untrusted_node_address(untrusted_address);
let trusted_address = node.to_trusted_node_address(); let trusted_address = node.to_trusted_node_address();
let servo_layout_node = ServoLayoutNode::new(&trusted_address); let servo_layout_node = ServoLayoutNode::new(&trusted_address);
servo_layout_node.as_element().unwrap() servo_layout_node.as_element().unwrap()
} };
host.shadow_root()?.implicit_scope_for_sheet(sheet_index)
} }
fn slotted_nodes(&self) -> &[Self::ConcreteNode] { fn slotted_nodes(&self) -> &[Self::ConcreteNode] {

View file

@ -26,12 +26,6 @@
[e.style['color'\] = "rgb(from oklch(0 0.399 336.3) r g b)" should set the property value] [e.style['color'\] = "rgb(from oklch(0 0.399 336.3) r g b)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "rgb(from rebeccapurple calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "rgb(from rgb(20%, 40%, 60%, 80%) calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "hsl(from color(display-p3 0 1 0) h s l / alpha)" should set the property value] [e.style['color'\] = "hsl(from color(display-p3 0 1 0) h s l / alpha)" should set the property value]
expected: FAIL expected: FAIL
@ -59,12 +53,6 @@
[e.style['color'\] = "hsl(from oklch(0 0.399 336.3) h s l)" should set the property value] [e.style['color'\] = "hsl(from oklch(0 0.399 336.3) h s l)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "hsl(from rebeccapurple calc(h) calc(s) calc(l))" should set the property value]
expected: FAIL
[e.style['color'\] = "hsl(from rgb(20%, 40%, 60%, 80%) calc(h) calc(s) calc(l) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "hwb(from color(display-p3 0 1 0) h w b / alpha)" should set the property value] [e.style['color'\] = "hwb(from color(display-p3 0 1 0) h w b / alpha)" should set the property value]
expected: FAIL expected: FAIL
@ -92,18 +80,6 @@
[e.style['color'\] = "hwb(from oklch(0 0.399 336.3) h w b)" should set the property value] [e.style['color'\] = "hwb(from oklch(0 0.399 336.3) h w b)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "hwb(from rebeccapurple calc(h) calc(w) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "hwb(from rgb(20%, 40%, 60%, 80%) calc(h) calc(w) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "lab(from lab(25 20 50) calc(l) calc(a) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "lab(from lab(25 20 50 / 40%) calc(l) calc(a) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklab(from oklab(25 20 50) l a b)" should set the property value] [e.style['color'\] = "oklab(from oklab(25 20 50) l a b)" should set the property value]
expected: FAIL expected: FAIL
@ -272,12 +248,6 @@
[e.style['color'\] = "lch(from lch(.7 45 30 / 40%) l c c / alpha)" should set the property value] [e.style['color'\] = "lch(from lch(.7 45 30 / 40%) l c c / alpha)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "lch(from lch(0.7 45 30) calc(l) calc(c) calc(h))" should set the property value]
expected: FAIL
[e.style['color'\] = "lch(from lch(0.7 45 30 / 40%) calc(l) calc(c) calc(h) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklch(from oklch(0.7 45 30) l c h)" should set the property value] [e.style['color'\] = "oklch(from oklch(0.7 45 30) l c h)" should set the property value]
expected: FAIL expected: FAIL
@ -452,60 +422,6 @@
[e.style['color'\] = "oklch(from oklch(.7 45 30 / 40%) alpha c c / alpha)" should set the property value] [e.style['color'\] = "oklch(from oklch(.7 45 30 / 40%) alpha c c / alpha)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "color(from color(srgb 0.7 0.5 0.3) srgb calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(srgb 0.7 0.5 0.3 / 40%) srgb calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(srgb-linear 0.7 0.5 0.3) srgb-linear calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(srgb-linear 0.7 0.5 0.3 / 40%) srgb-linear calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(a98-rgb 0.7 0.5 0.3) a98-rgb calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(a98-rgb 0.7 0.5 0.3 / 40%) a98-rgb calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(rec2020 0.7 0.5 0.3) rec2020 calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(rec2020 0.7 0.5 0.3 / 40%) rec2020 calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(prophoto-rgb 0.7 0.5 0.3) prophoto-rgb calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(prophoto-rgb 0.7 0.5 0.3 / 40%) prophoto-rgb calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(display-p3 0.7 0.5 0.3) display-p3 calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(display-p3 0.7 0.5 0.3 / 40%) display-p3 calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz 7 -20.5 100) xyz calc(x) calc(y) calc(z))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz 7 -20.5 100 / 40%) xyz calc(x) calc(y) calc(z) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz-d50 7 -20.5 100) xyz-d50 calc(x) calc(y) calc(z))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz-d50 7 -20.5 100 / 40%) xyz-d50 calc(x) calc(y) calc(z) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz-d65 7 -20.5 100) xyz-d65 calc(x) calc(y) calc(z))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from color(xyz-d65 7 -20.5 100 / 40%) xyz-d65 calc(x) calc(y) calc(z) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "rgb(from oklab(1 0.365 -0.16) r g b)" should set the property value] [e.style['color'\] = "rgb(from oklab(1 0.365 -0.16) r g b)" should set the property value]
expected: FAIL expected: FAIL
@ -527,12 +443,6 @@
[e.style['color'\] = "oklab(from oklab(0.25 0.2 0.5) l a b / .35)" should set the property value] [e.style['color'\] = "oklab(from oklab(0.25 0.2 0.5) l a b / .35)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "oklab(from oklab(0.25 0.2 0.5) calc(l) calc(a) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklab(from oklab(0.25 0.2 0.5 / 40%) calc(l) calc(a) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklab(from oklab(.7 0.45 0.3) alpha b a / l)" should set the property value] [e.style['color'\] = "oklab(from oklab(.7 0.45 0.3) alpha b a / l)" should set the property value]
expected: FAIL expected: FAIL
@ -563,12 +473,6 @@
[e.style['color'\] = "oklch(from oklch(.7 0.45 30 / 40%) l c c / alpha)" should set the property value] [e.style['color'\] = "oklch(from oklch(.7 0.45 30 / 40%) l c c / alpha)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "oklch(from oklch(0.7 0.45 30) calc(l) calc(c) calc(h))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklch(from oklch(0.7 0.45 30 / 40%) calc(l) calc(c) calc(h) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "oklch(from oklch(.7 0.45 30) alpha c h / l)" should set the property value] [e.style['color'\] = "oklch(from oklch(.7 0.45 30) alpha c h / l)" should set the property value]
expected: FAIL expected: FAIL
@ -623,23 +527,8 @@
[e.style['color'\] = "color(from color-mix(in xyz, color(xyz-d65 0.7 0.5 0.3), color(xyz-d65 0.7 0.5 0.3)) xyz-d65 x y z / alpha)" should set the property value] [e.style['color'\] = "color(from color-mix(in xyz, color(xyz-d65 0.7 0.5 0.3), color(xyz-d65 0.7 0.5 0.3)) xyz-d65 x y z / alpha)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "rgba(from rebeccapurple calc(r) calc(g) calc(b))" should set the property value]
expected: FAIL
[e.style['color'\] = "rgba(from rgb(20%, 40%, 60%, 80%) calc(r) calc(g) calc(b) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "hsla(from rebeccapurple calc(h) calc(s) calc(l))" should set the property value]
expected: FAIL
[e.style['color'\] = "hsla(from rgb(20%, 40%, 60%, 80%) calc(h) calc(s) calc(l) / calc(alpha))" should set the property value]
expected: FAIL
[e.style['color'\] = "color(from rebeccapurple srgb r g b)" should set the property value] [e.style['color'\] = "color(from rebeccapurple srgb r g b)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "rgb(from color(srgb 0.4 0.2 0.6) r g b)" should set the property value] [e.style['color'\] = "rgb(from color(srgb 0.4 0.2 0.6) r g b)" should set the property value]
expected: FAIL expected: FAIL
[e.style['color'\] = "oklch(from red calc(1 / l) c h)" should set the property value]
expected: FAIL

View file

@ -1,36 +0,0 @@
[color-stops-parsing.html]
[linear-gradient(black) [ parsable \]]
expected: FAIL
[linear-gradient(black 0%) [ parsable \]]
expected: FAIL
[repeating-linear-gradient(black) [ parsable \]]
expected: FAIL
[repeating-linear-gradient(black 0%) [ parsable \]]
expected: FAIL
[radial-gradient(black) [ parsable \]]
expected: FAIL
[radial-gradient(black 0%) [ parsable \]]
expected: FAIL
[repeating-radial-gradient(black) [ parsable \]]
expected: FAIL
[repeating-radial-gradient(black 0%) [ parsable \]]
expected: FAIL
[conic-gradient(black) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%) [ parsable \]]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-003.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-004.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-005.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-006.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[gradient-single-stop-007.html]
expected: FAIL

View file

@ -4,9 +4,3 @@
[e.style['content'\] = "-webkit-image-set(linear-gradient(black, white) 1x, 'example.png' 4x)" should set the property value] [e.style['content'\] = "-webkit-image-set(linear-gradient(black, white) 1x, 'example.png' 4x)" should set the property value]
expected: FAIL expected: FAIL
[e.style['background-image'\] = "image-set(linear-gradient(red) 1x)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "-webkit-image-set(linear-gradient(red) 1x)" should set the property value]
expected: FAIL