mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
layout: Turn on synthetic small-caps for layout 2020 (#31435)
Synthetic small caps is supported by the font subsystem, but this is disabled in Layout 2020. We can turn this on to bring support to parity with the old layout system. In addition to turning on synthetic small-caps this change also improves the way that they work. Before, synthetic small caps meant that every character was a small version of capitalized character. After this change, capital letters are larger than small caps versions of small letters -- matching other browsers and the common expectation of how small caps works.
This commit is contained in:
parent
98bd306816
commit
5ba29c20ac
48 changed files with 214 additions and 176 deletions
26
Cargo.lock
generated
26
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -169,19 +169,23 @@ pub struct Font {
|
|||
pub handle: FontHandle,
|
||||
pub metrics: FontMetrics,
|
||||
pub descriptor: FontDescriptor,
|
||||
pub actual_pt_size: Au,
|
||||
shaper: Option<Shaper>,
|
||||
shape_cache: RefCell<HashMap<ShapeCacheEntry, Arc<GlyphStore>>>,
|
||||
glyph_advance_cache: RefCell<HashMap<u32, FractionalPixel>>,
|
||||
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<FontRef>,
|
||||
}
|
||||
|
||||
impl Font {
|
||||
pub fn new(
|
||||
handle: FontHandle,
|
||||
descriptor: FontDescriptor,
|
||||
actual_pt_size: Au,
|
||||
font_key: FontInstanceKey,
|
||||
synthesized_small_caps: Option<FontRef>,
|
||||
) -> 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<GlyphId> {
|
||||
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<S>,
|
||||
codepoint: char,
|
||||
) -> Option<FontRef> {
|
||||
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)
|
||||
|
|
|
@ -115,6 +115,36 @@ impl<S: FontSource> FontContext<S> {
|
|||
font_descriptor: &FontDescriptor,
|
||||
family_descriptor: &FontFamilyDescriptor,
|
||||
) -> Option<FontRef> {
|
||||
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<FontRef> {
|
||||
// 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<S: FontSource> FontContext<S> {
|
|||
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<S: FontSource> FontContext<S> {
|
|||
&mut self,
|
||||
info: FontTemplateInfo,
|
||||
descriptor: FontDescriptor,
|
||||
synthesized_small_caps: Option<FontRef>,
|
||||
) -> Result<Font, ()> {
|
||||
// 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,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
);
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -31,7 +31,7 @@ pub struct TextRun {
|
|||
/// The UTF-8 string represented by this text run.
|
||||
pub text: Arc<String>,
|
||||
pub font_template: Arc<FontTemplateData>,
|
||||
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),
|
||||
|
|
|
@ -664,11 +664,14 @@ impl RunInfo {
|
|||
}
|
||||
|
||||
fn has_font(&self, font: &Option<FontRef>) -> bool {
|
||||
fn identifier(font: &Option<FontRef>) -> Option<Atom> {
|
||||
font.as_ref().map(|f| f.borrow().identifier())
|
||||
fn identifier_and_pt_size(font: &Option<FontRef>) -> 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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
||||
|
|
|
@ -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<FontKeyAndMetrics>) -> 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
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[font-011.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-012.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-013.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-014.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-015.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-016.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-029.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-030.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-031.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-032.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-042.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-043.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-applies-to-001.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-applies-to-017.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-variant-applies-to-001.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[font-variant-applies-to-017.xht]
|
||||
type: reftest
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-003.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-011.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-012.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-013.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-014.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-015.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-016.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-029.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-030.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-031.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-032.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-042.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-043.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-applies-to-001.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[font-applies-to-017.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +1,2 @@
|
|||
[font-weight-applies-to-005.xht]
|
||||
expected: FAIL
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[system-fonts.html]
|
||||
expected: ERROR
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (-2) should be [italic\] for <font-style>]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -1763,3 +1762,111 @@
|
|||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [serif\] for <font-family>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [caption\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [icon\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [menu\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [message-box\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [small-caption\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (0.6) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <font> from [italic 100 small-caps ultra-expanded 100px / 100px Ahem\] to [status-bar\] at (1.5) should be [normal\] for <font-variant>]
|
||||
expected: FAIL
|
||||
|
|
|
@ -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
|
||||
|
|
2
tests/wpt/meta/css/css-fonts/font-synthesis-07.html.ini
Normal file
2
tests/wpt/meta/css/css-fonts/font-synthesis-07.html.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[font-synthesis-07.html]
|
||||
expected: FAIL
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue