diff --git a/Cargo.lock b/Cargo.lock index f336e1928eb..6a387d00a07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1208,7 +1208,7 @@ dependencies = [ [[package]] name = "derive_common" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "darling", "proc-macro2", @@ -3460,7 +3460,7 @@ dependencies = [ [[package]] name = "malloc_size_of" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "accountable-refcell", "app_units", @@ -5072,7 +5072,7 @@ dependencies = [ [[package]] name = "selectors" version = "0.24.0" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "bitflags 1.3.2", "cssparser", @@ -5360,7 +5360,7 @@ dependencies = [ [[package]] name = "servo_arc" version = "0.2.0" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "nodrop", "serde", @@ -5370,7 +5370,7 @@ dependencies = [ [[package]] name = "servo_atoms" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "string_cache", "string_cache_codegen", @@ -5575,7 +5575,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "size_of_test" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "static_assertions", ] @@ -5701,7 +5701,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_prefs" version = "0.1.0" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" [[package]] name = "str-buf" @@ -5744,7 +5744,7 @@ dependencies = [ [[package]] name = "style" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "app_units", "arrayvec", @@ -5801,7 +5801,7 @@ dependencies = [ [[package]] name = "style_config" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "lazy_static", ] @@ -5809,7 +5809,7 @@ dependencies = [ [[package]] name = "style_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "darling", "derive_common", @@ -5840,7 +5840,7 @@ dependencies = [ [[package]] name = "style_traits" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "app_units", "bitflags 1.3.2", @@ -6183,7 +6183,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "to_shmem" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "cssparser", "servo_arc", @@ -6196,7 +6196,7 @@ dependencies = [ [[package]] name = "to_shmem_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#9d04df286684bbe1b05858ed1b337b006784bf36" +source = "git+https://github.com/servo/stylo.git?branch=2023-06-14#a11671a8886bd535001335b6f2a1746262d02478" dependencies = [ "darling", "derive_common", diff --git a/components/gfx/font.rs b/components/gfx/font.rs index 5bce57528f5..9fd25b839d0 100644 --- a/components/gfx/font.rs +++ b/components/gfx/font.rs @@ -169,19 +169,23 @@ pub struct Font { pub handle: FontHandle, pub metrics: FontMetrics, pub descriptor: FontDescriptor, - pub actual_pt_size: Au, shaper: Option, shape_cache: RefCell>>, glyph_advance_cache: RefCell>, pub font_key: FontInstanceKey, + + /// If this is a synthesized small caps font, then this font reference is for + /// the version of the font used to replace lowercase ASCII letters. It's up + /// to the consumer of this font to properly use this reference. + pub synthesized_small_caps: Option, } impl Font { pub fn new( handle: FontHandle, descriptor: FontDescriptor, - actual_pt_size: Au, font_key: FontInstanceKey, + synthesized_small_caps: Option, ) -> Font { let metrics = handle.metrics(); @@ -189,11 +193,11 @@ impl Font { handle: handle, shaper: None, descriptor, - actual_pt_size, metrics, shape_cache: RefCell::new(HashMap::new()), glyph_advance_cache: RefCell::new(HashMap::new()), font_key, + synthesized_small_caps, } } @@ -351,7 +355,7 @@ impl Font { #[inline] pub fn glyph_index(&self, codepoint: char) -> Option { let codepoint = match self.descriptor.variant { - font_variant_caps::T::SmallCaps => codepoint.to_uppercase().next().unwrap(), //FIXME: #5938 + font_variant_caps::T::SmallCaps => codepoint.to_ascii_uppercase(), font_variant_caps::T::Normal => codepoint, }; self.handle.glyph_index(codepoint) @@ -418,23 +422,33 @@ impl FontGroup { mut font_context: &mut FontContext, codepoint: char, ) -> Option { + let should_look_for_small_caps = self.descriptor.variant == font_variant_caps::T::SmallCaps && + codepoint.is_ascii_lowercase(); + let font_or_synthesized_small_caps = |font: FontRef| { + if should_look_for_small_caps { + let font = font.borrow(); + if font.synthesized_small_caps.is_some() { + return font.synthesized_small_caps.clone(); + } + } + Some(font) + }; + let has_glyph = |font: &FontRef| font.borrow().has_glyph_for(codepoint); - let font = self.find(&mut font_context, |font| has_glyph(font)); - if font.is_some() { - return font; + if let Some(font) = self.find(&mut font_context, |font| has_glyph(font)) { + return font_or_synthesized_small_caps(font); } - if let Some(ref fallback) = self.last_matching_fallback { - if has_glyph(&fallback) { - return self.last_matching_fallback.clone(); + if let Some(ref last_matching_fallback) = self.last_matching_fallback { + if has_glyph(&last_matching_fallback) { + return font_or_synthesized_small_caps(last_matching_fallback.clone()); } } - let font = self.find_fallback(&mut font_context, Some(codepoint), has_glyph); - if font.is_some() { - self.last_matching_fallback = font.clone(); - return font; + if let Some(font) = self.find_fallback(&mut font_context, Some(codepoint), has_glyph) { + self.last_matching_fallback = Some(font.clone()); + return font_or_synthesized_small_caps(font); } self.first(&mut font_context) diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs index cd07e658b3e..3a577a1fbd1 100644 --- a/components/gfx/font_context.rs +++ b/components/gfx/font_context.rs @@ -115,6 +115,36 @@ impl FontContext { font_descriptor: &FontDescriptor, family_descriptor: &FontFamilyDescriptor, ) -> Option { + self.get_font_maybe_synthesizing_small_caps( + font_descriptor, + family_descriptor, + true, /* synthesize_small_caps */ + ) + } + + fn get_font_maybe_synthesizing_small_caps( + &mut self, + font_descriptor: &FontDescriptor, + family_descriptor: &FontFamilyDescriptor, + synthesize_small_caps: bool, + ) -> Option { + // TODO: (Bug #3463): Currently we only support fake small-caps + // painting. We should also support true small-caps (where the + // font supports it) in the future. + let synthesized_small_caps_font = + if font_descriptor.variant == FontVariantCaps::SmallCaps && synthesize_small_caps { + let mut small_caps_descriptor = font_descriptor.clone(); + small_caps_descriptor.pt_size = + font_descriptor.pt_size.scale_by(SMALL_CAPS_SCALE_FACTOR); + self.get_font_maybe_synthesizing_small_caps( + &small_caps_descriptor, + family_descriptor, + false, /* synthesize_small_caps */ + ) + } else { + None + }; + let cache_key = FontCacheKey { font_descriptor: font_descriptor.clone(), family_descriptor: family_descriptor.clone(), @@ -132,8 +162,12 @@ impl FontContext { let font = self .font_template(&font_descriptor.template_descriptor, family_descriptor) .and_then(|template_info| { - self.create_font(template_info, font_descriptor.to_owned()) - .ok() + self.create_font( + template_info, + font_descriptor.to_owned(), + synthesized_small_caps_font, + ) + .ok() }) .map(|font| Rc::new(RefCell::new(font))); @@ -175,29 +209,22 @@ impl FontContext { &mut self, info: FontTemplateInfo, descriptor: FontDescriptor, + synthesized_small_caps: Option, ) -> Result { - // TODO: (Bug #3463): Currently we only support fake small-caps - // painting. We should also support true small-caps (where the - // font supports it) in the future. - let actual_pt_size = match descriptor.variant { - FontVariantCaps::SmallCaps => descriptor.pt_size.scale_by(SMALL_CAPS_SCALE_FACTOR), - FontVariantCaps::Normal => descriptor.pt_size, - }; - let handle = FontHandle::new_from_template( &self.platform_handle, info.font_template, - Some(actual_pt_size), + Some(descriptor.pt_size), )?; let font_instance_key = self .font_source - .get_font_instance(info.font_key, actual_pt_size); + .get_font_instance(info.font_key, descriptor.pt_size); Ok(Font::new( handle, descriptor, - actual_pt_size, font_instance_key, + synthesized_small_caps, )) } } diff --git a/components/gfx/tests/font_context.rs b/components/gfx/tests/font_context.rs index 035a80ea7c3..6ea58172c27 100644 --- a/components/gfx/tests/font_context.rs +++ b/components/gfx/tests/font_context.rs @@ -245,8 +245,8 @@ fn test_font_template_is_cached() { let font2 = context.font(&font_descriptor, &family_descriptor).unwrap(); assert_ne!( - font1.borrow().actual_pt_size, - font2.borrow().actual_pt_size, + font1.borrow().descriptor.pt_size, + font2.borrow().descriptor.pt_size, "the same font should not have been returned" ); diff --git a/components/gfx/text/shaping/harfbuzz.rs b/components/gfx/text/shaping/harfbuzz.rs index 354dc923d6b..389a44b5457 100644 --- a/components/gfx/text/shaping/harfbuzz.rs +++ b/components/gfx/text/shaping/harfbuzz.rs @@ -146,7 +146,7 @@ impl Shaper { let hb_font: *mut hb_font_t = hb_font_create(hb_face); // Set points-per-em. if zero, performs no hinting in that direction. - let pt_size = (*font).actual_pt_size.to_f64_px(); + let pt_size = (*font).descriptor.pt_size.to_f64_px(); hb_font_set_ppem(hb_font, pt_size as c_uint, pt_size as c_uint); // Set scaling. Note that this takes 16.16 fixed point. diff --git a/components/gfx/text/text_run.rs b/components/gfx/text/text_run.rs index 0b36cde4c36..011ba784107 100644 --- a/components/gfx/text/text_run.rs +++ b/components/gfx/text/text_run.rs @@ -31,7 +31,7 @@ pub struct TextRun { /// The UTF-8 string represented by this text run. pub text: Arc, pub font_template: Arc, - pub actual_pt_size: Au, + pub pt_size: Au, pub font_metrics: FontMetrics, pub font_key: FontInstanceKey, /// The glyph runs that make up this text run. @@ -195,7 +195,7 @@ impl<'a> TextRun { font_metrics: font.metrics.clone(), font_template: font.handle.template(), font_key: font.font_key, - actual_pt_size: font.actual_pt_size, + pt_size: font.descriptor.pt_size, glyphs: Arc::new(glyphs), bidi_level: bidi_level, extra_word_spacing: Au(0), diff --git a/components/layout/text.rs b/components/layout/text.rs index 4c38313cc64..0c6e8ecc424 100644 --- a/components/layout/text.rs +++ b/components/layout/text.rs @@ -664,11 +664,14 @@ impl RunInfo { } fn has_font(&self, font: &Option) -> bool { - fn identifier(font: &Option) -> Option { - font.as_ref().map(|f| f.borrow().identifier()) + fn identifier_and_pt_size(font: &Option) -> Option<(Atom, Au)> { + font.as_ref().map(|font| { + let font = font.borrow(); + (font.identifier(), font.descriptor.pt_size) + }) } - identifier(&self.font) == identifier(font) + identifier_and_pt_size(&self.font) == identifier_and_pt_size(font) } } diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs index 41926944a91..2eedf40987e 100644 --- a/components/layout_2020/flow/inline.rs +++ b/components/layout_2020/flow/inline.rs @@ -70,7 +70,7 @@ pub(crate) struct InlineFormattingContext { #[derive(Debug, Serialize)] pub(crate) struct FontKeyAndMetrics { pub key: FontInstanceKey, - pub actual_pt_size: Au, + pub pt_size: Au, pub metrics: FontMetrics, } diff --git a/components/layout_2020/flow/text_run.rs b/components/layout_2020/flow/text_run.rs index 16f03b72b84..117cf37b915 100644 --- a/components/layout_2020/flow/text_run.rs +++ b/components/layout_2020/flow/text_run.rs @@ -122,7 +122,7 @@ impl TextRunSegment { let current_font_key_and_metrics = &fonts[self.font_index]; let new_font = font.borrow(); if new_font.font_key != current_font_key_and_metrics.key || - new_font.actual_pt_size != current_font_key_and_metrics.actual_pt_size + new_font.descriptor.pt_size != current_font_key_and_metrics.pt_size { return false; } @@ -489,15 +489,14 @@ fn char_does_not_change_font(character: char) -> bool { pub(super) fn add_or_get_font(font: &FontRef, ifc_fonts: &mut Vec) -> usize { let font = font.borrow(); for (index, ifc_font_info) in ifc_fonts.iter().enumerate() { - if ifc_font_info.key == font.font_key && ifc_font_info.actual_pt_size == font.actual_pt_size - { + if ifc_font_info.key == font.font_key && ifc_font_info.pt_size == font.descriptor.pt_size { return index; } } ifc_fonts.push(FontKeyAndMetrics { metrics: font.metrics.clone(), key: font.font_key, - actual_pt_size: font.actual_pt_size, + pt_size: font.descriptor.pt_size, }); ifc_fonts.len() - 1 } diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-011.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-011.xht.ini deleted file mode 100644 index 1d20424ec60..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-011.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-011.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-012.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-012.xht.ini deleted file mode 100644 index ee9fc5e6113..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-012.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-012.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-013.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-013.xht.ini deleted file mode 100644 index 186453d3e57..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-013.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-013.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-014.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-014.xht.ini deleted file mode 100644 index e67b283a77a..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-014.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-014.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-015.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-015.xht.ini deleted file mode 100644 index 2a137632a50..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-015.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-015.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-016.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-016.xht.ini deleted file mode 100644 index 1da1651e12e..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-016.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-016.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-029.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-029.xht.ini deleted file mode 100644 index bcd1a388d4c..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-029.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-029.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-030.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-030.xht.ini deleted file mode 100644 index ff38611482e..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-030.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-030.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-031.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-031.xht.ini deleted file mode 100644 index b207bf8f500..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-031.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-031.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-032.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-032.xht.ini deleted file mode 100644 index 0fbd2ed5960..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-032.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-032.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-042.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-042.xht.ini deleted file mode 100644 index bc50177915a..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-042.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-042.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-043.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-043.xht.ini deleted file mode 100644 index 7a4365ef925..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-043.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-043.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-001.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-001.xht.ini deleted file mode 100644 index d3040b93ee5..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-001.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-applies-to-001.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-017.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-017.xht.ini deleted file mode 100644 index 3979a680896..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-applies-to-017.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-applies-to-017.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-001.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-001.xht.ini deleted file mode 100644 index 818183751e3..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-001.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-variant-applies-to-001.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-017.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-017.xht.ini deleted file mode 100644 index f54f1518724..00000000000 --- a/tests/wpt/meta-legacy-layout/css/CSS2/fonts/font-variant-applies-to-017.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[font-variant-applies-to-017.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-003.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-003.xht.ini deleted file mode 100644 index f80998b6aeb..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-003.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-003.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-011.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-011.xht.ini deleted file mode 100644 index 7abdcb91819..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-011.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-011.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-012.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-012.xht.ini deleted file mode 100644 index a4aa0b83816..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-012.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-012.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-013.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-013.xht.ini deleted file mode 100644 index a06399a3ee9..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-013.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-013.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-014.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-014.xht.ini deleted file mode 100644 index d472c7ee518..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-014.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-014.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-015.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-015.xht.ini deleted file mode 100644 index ff0533a7e45..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-015.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-015.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-016.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-016.xht.ini deleted file mode 100644 index ac11dbcebdd..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-016.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-016.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-029.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-029.xht.ini deleted file mode 100644 index a20cbf59132..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-029.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-029.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-030.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-030.xht.ini deleted file mode 100644 index 72b62288340..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-030.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-030.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-031.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-031.xht.ini deleted file mode 100644 index 45da1e224a4..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-031.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-031.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-032.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-032.xht.ini deleted file mode 100644 index debc1de3dfc..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-032.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-032.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-042.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-042.xht.ini deleted file mode 100644 index f4e7a4af594..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-042.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-042.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-043.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-043.xht.ini deleted file mode 100644 index 5c7c4b39f20..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-043.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-043.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-applies-to-001.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-applies-to-001.xht.ini deleted file mode 100644 index da4244f3383..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-applies-to-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-applies-to-001.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-applies-to-017.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-applies-to-017.xht.ini deleted file mode 100644 index c0f90207419..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-applies-to-017.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-applies-to-017.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-weight-applies-to-005.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-weight-applies-to-005.xht.ini index 3d86187da31..a53f4349638 100644 --- a/tests/wpt/meta/css/CSS2/fonts/font-weight-applies-to-005.xht.ini +++ b/tests/wpt/meta/css/CSS2/fonts/font-weight-applies-to-005.xht.ini @@ -1,2 +1,2 @@ [font-weight-applies-to-005.xht] - expected: FAIL \ No newline at end of file + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/animations/system-fonts.html.ini b/tests/wpt/meta/css/css-fonts/animations/system-fonts.html.ini index e540264b569..3e663dfb32d 100644 --- a/tests/wpt/meta/css/css-fonts/animations/system-fonts.html.ini +++ b/tests/wpt/meta/css/css-fonts/animations/system-fonts.html.ini @@ -1,5 +1,4 @@ [system-fonts.html] - expected: ERROR [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (-2) should be [italic\] for ] expected: FAIL @@ -1763,3 +1762,111 @@ [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [serif\] for ] expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1.5) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1.5) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1.5) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1.5) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1.5) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (0.6) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1) should be [normal\] for ] + expected: FAIL + + [CSS Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (0.6) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1) should be [normal\] for ] + expected: FAIL + + [Web Animations: property from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [normal\] for ] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/font-shorthand-serialization-prevention.html.ini b/tests/wpt/meta/css/css-fonts/font-shorthand-serialization-prevention.html.ini index b18640ea492..207963186f5 100644 --- a/tests/wpt/meta/css/css-fonts/font-shorthand-serialization-prevention.html.ini +++ b/tests/wpt/meta/css/css-fonts/font-shorthand-serialization-prevention.html.ini @@ -1,25 +1,4 @@ [font-shorthand-serialization-prevention.html] - [Setting font-variant to initial should not prevent the font shorthand from serializing in computed style] - expected: FAIL - - [Setting font-variant to inherit should not prevent the font shorthand from serializing in computed style] - expected: FAIL - - [Setting font-variant to unset should not prevent the font shorthand from serializing in computed style] - expected: FAIL - - [Setting font-variant to revert should not prevent the font shorthand from serializing in computed style] - expected: FAIL - - [Setting font-variant to revert-layer should prevent the font shorthand from serializing in specified style] - expected: FAIL - - [Setting font-variant to revert-layer should not prevent the font shorthand from serializing in computed style] - expected: FAIL - - [Setting font-variant to normal should not prevent the font shorthand from serializing in computed style] - expected: FAIL - [Setting font-variant to none should prevent the font shorthand from serializing in specified style] expected: FAIL @@ -34,3 +13,6 @@ [Setting font-variant-caps to all-small-caps should prevent the font shorthand from serializing in computed style] expected: FAIL + + [Setting font-variant to none should prevent the font shorthand from serializing in computed style] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/font-synthesis-07.html.ini b/tests/wpt/meta/css/css-fonts/font-synthesis-07.html.ini new file mode 100644 index 00000000000..0abf192fdb6 --- /dev/null +++ b/tests/wpt/meta/css/css-fonts/font-synthesis-07.html.ini @@ -0,0 +1,2 @@ +[font-synthesis-07.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/inheritance.html.ini b/tests/wpt/meta/css/css-fonts/inheritance.html.ini index b607a39b79c..1580e850c13 100644 --- a/tests/wpt/meta/css/css-fonts/inheritance.html.ini +++ b/tests/wpt/meta/css/css-fonts/inheritance.html.ini @@ -35,9 +35,6 @@ [Property font-synthesis inherits] expected: FAIL - [Property font-variant has initial value normal] - expected: FAIL - [Property font-variant inherits] expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/parsing/font-variant-valid.html.ini b/tests/wpt/meta/css/css-fonts/parsing/font-variant-valid.html.ini index 36dd3f36330..81343ea5c9a 100644 --- a/tests/wpt/meta/css/css-fonts/parsing/font-variant-valid.html.ini +++ b/tests/wpt/meta/css/css-fonts/parsing/font-variant-valid.html.ini @@ -1,7 +1,4 @@ [font-variant-valid.html] - [e.style['font-variant'\] = "normal" should set the property value] - expected: FAIL - [e.style['font-variant'\] = "none" should set the property value] expected: FAIL @@ -29,9 +26,6 @@ [e.style['font-variant'\] = "no-contextual" should set the property value] expected: FAIL - [e.style['font-variant'\] = "small-caps" should set the property value] - expected: FAIL - [e.style['font-variant'\] = "all-small-caps" should set the property value] expected: FAIL diff --git a/tests/wpt/meta/css/cssom/font-variant-shorthand-serialization.html.ini b/tests/wpt/meta/css/cssom/font-variant-shorthand-serialization.html.ini index eaa5c649cc4..97d5319962f 100644 --- a/tests/wpt/meta/css/cssom/font-variant-shorthand-serialization.html.ini +++ b/tests/wpt/meta/css/cssom/font-variant-shorthand-serialization.html.ini @@ -1,12 +1,12 @@ [font-variant-shorthand-serialization.html] - [font-variant: normal serialization] - expected: FAIL - [font-variant: none serialization] expected: FAIL [CSS-wide keyword in one longhand] expected: FAIL - [CSS-wide keyword in shorthand] + [font-variant-ligatures: none serialization with non-default value for another longhand] + expected: FAIL + + [font: menu serialization] expected: FAIL diff --git a/tests/wpt/meta/css/cssom/serialize-values.html.ini b/tests/wpt/meta/css/cssom/serialize-values.html.ini index d6e2c074721..72e9764f5f6 100644 --- a/tests/wpt/meta/css/cssom/serialize-values.html.ini +++ b/tests/wpt/meta/css/cssom/serialize-values.html.ini @@ -119,15 +119,6 @@ [empty-cells: inherit] expected: FAIL - [font-variant: normal] - expected: FAIL - - [font-variant: small-caps] - expected: FAIL - - [font-variant: inherit] - expected: FAIL - [list-style-position: inside] expected: FAIL