mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update Stylo to 2023-09-01 (#31609)
* Update Stylo to 2023-09-01 * Fixup for https://phabricator.services.mozilla.com/D184929 * Fixup for https://phabricator.services.mozilla.com/D184526 * Fixup for https://phabricator.services.mozilla.com/D184525 * Fixup for https://phabricator.services.mozilla.com/D185154 * Fixup for https://phabricator.services.mozilla.com/D184685 * Fixup for https://phabricator.services.mozilla.com/D185916 * Fixup for https://phabricator.services.mozilla.com/D185492 * Fixup for https://phabricator.services.mozilla.com/D186626 * Update test expectations
This commit is contained in:
parent
94c1f2c992
commit
c07484fcb6
67 changed files with 235 additions and 491 deletions
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use style::color::AbsoluteColor;
|
||||
use style::color::{AbsoluteColor, ColorSpace};
|
||||
use style::values::animated::{Animate, Procedure, ToAnimatedValue};
|
||||
|
||||
fn interpolate_color(from: AbsoluteColor, to: AbsoluteColor, progress: f64) -> AbsoluteColor {
|
||||
|
@ -14,28 +14,40 @@ fn interpolate_color(from: AbsoluteColor, to: AbsoluteColor, progress: f64) -> A
|
|||
)
|
||||
}
|
||||
|
||||
fn srgb_legacy_from_floats(red: f32, green: f32, blue: f32, alpha: f32) -> AbsoluteColor {
|
||||
AbsoluteColor::new(ColorSpace::Srgb, red, green, blue, alpha).into_srgb_legacy()
|
||||
}
|
||||
|
||||
// Color
|
||||
#[test]
|
||||
fn test_rgba_color_interepolation_preserves_transparent() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::transparent(),
|
||||
AbsoluteColor::transparent(),
|
||||
0.5
|
||||
),
|
||||
AbsoluteColor::transparent()
|
||||
interpolate_color(AbsoluteColor::TRANSPARENT, AbsoluteColor::TRANSPARENT, 0.5),
|
||||
AbsoluteColor::TRANSPARENT
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_rgba_color_interepolation_alpha() {
|
||||
fn test_rgba_color_interepolation_alpha_1() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::srgb(0.6, 0.0, 0.0, 0.4),
|
||||
AbsoluteColor::srgb(0.0, 0.6, 0.0, 0.8),
|
||||
AbsoluteColor::srgb_legacy(150, 0, 0, 0.4),
|
||||
AbsoluteColor::srgb_legacy(0, 150, 0, 0.8),
|
||||
0.5
|
||||
),
|
||||
AbsoluteColor::srgb(0.2, 0.4, 0.0, 0.6)
|
||||
AbsoluteColor::srgb_legacy(50, 100, 0, 0.6)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_rgba_color_interepolation_alpha_2() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
srgb_legacy_from_floats(0.6, 0.0, 0.0, 0.4),
|
||||
srgb_legacy_from_floats(0.0, 0.6, 0.0, 0.8),
|
||||
0.5
|
||||
),
|
||||
srgb_legacy_from_floats(0.2, 0.4, 0.0, 0.6)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -43,13 +55,15 @@ fn test_rgba_color_interepolation_alpha() {
|
|||
fn test_rgba_color_interepolation_out_of_range_1() {
|
||||
// Some cubic-bezier functions produce values that are out of range [0, 1].
|
||||
// Unclamped cases.
|
||||
// Note `AbsoluteColor::srgb_legacy` doesn't accept out of range values,
|
||||
// so we only test with `srgb_legacy_from_floats`.
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::srgb(0.3, 0.0, 0.0, 0.4),
|
||||
AbsoluteColor::srgb(0.0, 1.0, 0.0, 0.6),
|
||||
srgb_legacy_from_floats(0.3, 0.0, 0.0, 0.4),
|
||||
srgb_legacy_from_floats(0.0, 1.0, 0.0, 0.6),
|
||||
-0.5
|
||||
),
|
||||
AbsoluteColor::srgb(0.6, -1.0, 0.0, 0.3)
|
||||
srgb_legacy_from_floats(0.6, -1.0, 0.0, 0.3)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -57,11 +71,11 @@ fn test_rgba_color_interepolation_out_of_range_1() {
|
|||
fn test_rgba_color_interepolation_out_of_range_2() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::srgb(1.0, 0.0, 0.0, 0.6),
|
||||
AbsoluteColor::srgb(0.0, 0.3, 0.0, 0.4),
|
||||
srgb_legacy_from_floats(1.0, 0.0, 0.0, 0.6),
|
||||
srgb_legacy_from_floats(0.0, 0.3, 0.0, 0.4),
|
||||
1.5
|
||||
),
|
||||
AbsoluteColor::srgb(-1.0, 0.6, 0.0, 0.3)
|
||||
srgb_legacy_from_floats(-1.0, 0.6, 0.0, 0.3)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -69,11 +83,11 @@ fn test_rgba_color_interepolation_out_of_range_2() {
|
|||
fn test_rgba_color_interepolation_out_of_range_clamped_1() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::srgb(1.0, 0.0, 0.0, 0.8),
|
||||
AbsoluteColor::srgb(0.0, 1.0, 0.0, 0.2),
|
||||
srgb_legacy_from_floats(1.0, 0.0, 0.0, 0.8),
|
||||
srgb_legacy_from_floats(0.0, 1.0, 0.0, 0.2),
|
||||
-0.5
|
||||
),
|
||||
AbsoluteColor::srgb(1.2, -0.1, 0.0, 1.0)
|
||||
srgb_legacy_from_floats(1.2, -0.1, 0.0, 1.0)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -81,10 +95,10 @@ fn test_rgba_color_interepolation_out_of_range_clamped_1() {
|
|||
fn test_rgba_color_interepolation_out_of_range_clamped_2() {
|
||||
assert_eq!(
|
||||
interpolate_color(
|
||||
AbsoluteColor::srgb(1.0, 0.0, 0.0, 0.8),
|
||||
AbsoluteColor::srgb(0.0, 1.0, 0.0, 0.2),
|
||||
srgb_legacy_from_floats(1.0, 0.0, 0.0, 0.8),
|
||||
srgb_legacy_from_floats(0.0, 1.0, 0.0, 0.2),
|
||||
1.5
|
||||
),
|
||||
AbsoluteColor::srgb(-0.4, 0.3, 0.0, 0.0)
|
||||
srgb_legacy_from_floats(-0.4, 0.3, 0.0, 0.0)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ use style::media_queries::{Device, MediaType};
|
|||
use style::properties::{CustomDeclaration, CustomDeclarationValue};
|
||||
use style::rule_tree::CascadeLevel;
|
||||
use style::stylesheets::layer_rule::LayerOrder;
|
||||
use style::stylist::Stylist;
|
||||
use test::{self, Bencher};
|
||||
|
||||
fn cascade(
|
||||
|
@ -37,7 +38,8 @@ fn cascade(
|
|||
Size2D::new(800., 600.),
|
||||
Scale::new(1.0),
|
||||
);
|
||||
let mut builder = CustomPropertiesBuilder::new(inherited, &device);
|
||||
let stylist = Stylist::new(device, QuirksMode::NoQuirks);
|
||||
let mut builder = CustomPropertiesBuilder::new(inherited, &stylist);
|
||||
|
||||
for declaration in &declarations {
|
||||
builder.cascade(
|
||||
|
|
|
@ -74,7 +74,6 @@ fn parse_rules(lock: &SharedRwLock, css: &str) -> Vec<(StyleSource, CascadeLevel
|
|||
None,
|
||||
Some(&ErrorringErrorReporter),
|
||||
QuirksMode::NoQuirks,
|
||||
0,
|
||||
AllowImportRules::Yes,
|
||||
);
|
||||
let guard = s.shared_lock.read();
|
||||
|
|
|
@ -107,33 +107,32 @@ fn test_report_error_stylesheet() {
|
|||
None,
|
||||
Some(&error_reporter),
|
||||
QuirksMode::NoQuirks,
|
||||
5,
|
||||
AllowImportRules::Yes,
|
||||
);
|
||||
|
||||
error_reporter.assert_messages_contain(&[
|
||||
(
|
||||
8,
|
||||
3,
|
||||
18,
|
||||
"Unsupported property declaration: 'display: invalid;'",
|
||||
),
|
||||
(
|
||||
9,
|
||||
4,
|
||||
43,
|
||||
"Unsupported property declaration: 'background-image:",
|
||||
), // FIXME: column should be around 56
|
||||
(10, 17, "Unsupported property declaration: 'invalid: true;'"),
|
||||
(12, 28, "Invalid media rule"),
|
||||
(5, 17, "Unsupported property declaration: 'invalid: true;'"),
|
||||
(7, 28, "Invalid media rule"),
|
||||
// When @counter-style is supported, this should be replaced with two errors
|
||||
(14, 19, "Invalid rule: '@counter-style "),
|
||||
(9, 19, "Invalid rule: '@counter-style "),
|
||||
// When @font-feature-values is supported, this should be replaced with two errors
|
||||
(15, 25, "Invalid rule: '@font-feature-values "),
|
||||
(16, 13, "Invalid rule: '@invalid'"),
|
||||
(17, 29, "Invalid rule: '@invalid'"),
|
||||
(18, 34, "Invalid rule: '@supports "),
|
||||
(19, 26, "Invalid keyframe rule: 'from invalid '"),
|
||||
(10, 25, "Invalid rule: '@font-feature-values "),
|
||||
(11, 13, "Invalid rule: '@invalid'"),
|
||||
(12, 29, "Invalid rule: '@invalid'"),
|
||||
(13, 34, "Invalid rule: '@supports "),
|
||||
(14, 26, "Invalid keyframe rule: 'from invalid '"),
|
||||
(
|
||||
19,
|
||||
14,
|
||||
52,
|
||||
"Unsupported keyframe property declaration: 'margin: 0 invalid 0;'",
|
||||
),
|
||||
|
@ -165,7 +164,6 @@ fn test_no_report_unrecognized_vendor_properties() {
|
|||
None,
|
||||
Some(&error_reporter),
|
||||
QuirksMode::NoQuirks,
|
||||
0,
|
||||
AllowImportRules::Yes,
|
||||
);
|
||||
|
||||
|
@ -199,7 +197,6 @@ fn test_source_map_url() {
|
|||
None,
|
||||
None,
|
||||
QuirksMode::NoQuirks,
|
||||
0,
|
||||
AllowImportRules::Yes,
|
||||
);
|
||||
let url_opt = stylesheet.contents.source_map_url.read();
|
||||
|
@ -227,7 +224,6 @@ fn test_source_url() {
|
|||
None,
|
||||
None,
|
||||
QuirksMode::NoQuirks,
|
||||
0,
|
||||
AllowImportRules::Yes,
|
||||
);
|
||||
let url_opt = stylesheet.contents.source_url.read();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue