From 4b973885a3d16c007e99d0f51ea0f507b64b276f Mon Sep 17 00:00:00 2001 From: Oriol Brufau Date: Tue, 16 May 2023 22:56:28 +0200 Subject: [PATCH] style: Add the size-adjust descriptor to the style system Differential Revision: https://phabricator.services.mozilla.com/D110022 --- components/style/font_face.rs | 8 +++++++- components/style/values/specified/percentage.rs | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/components/style/font_face.rs b/components/style/font_face.rs index 901bafe5101..f7c95c10323 100644 --- a/components/style/font_face.rs +++ b/components/style/font_face.rs @@ -23,7 +23,7 @@ use crate::values::specified::font::{AbsoluteFontWeight, FontStretch}; #[cfg(feature = "gecko")] use crate::values::specified::font::MetricsOverride; use crate::values::specified::url::SpecifiedUrl; -use crate::values::specified::Angle; +use crate::values::specified::{Angle, NonNegativePercentage}; #[cfg(feature = "gecko")] use cssparser::UnicodeRange; use cssparser::{AtRuleParser, DeclarationListParser, DeclarationParser, Parser}; @@ -429,6 +429,9 @@ macro_rules! is_descriptor_enabled { ("line-gap-override") => { static_prefs::pref!("layout.css.font-metrics-overrides.enabled") }; + ("size-adjust") => { + static_prefs::pref!("layout.css.size-adjust.enabled") + }; ($name:tt) => { true }; @@ -596,6 +599,9 @@ font_face_descriptors! { /// The line-gap override for this font face. "line-gap-override" line_gap_override / mLineGapOverride: MetricsOverride, + + /// The size adjustment for this font face. + "size-adjust" size_adjust / mSizeAdjust: NonNegativePercentage, ] } diff --git a/components/style/values/specified/percentage.rs b/components/style/values/specified/percentage.rs index c73616a3848..a152f7d8dc0 100644 --- a/components/style/values/specified/percentage.rs +++ b/components/style/values/specified/percentage.rs @@ -186,3 +186,11 @@ impl Parse for NonNegativePercentage { Ok(NonNegative(Percentage::parse_non_negative(context, input)?)) } } + +impl NonNegativePercentage { + /// Convert to ComputedPercentage, for FontFaceRule size-adjust getter. + #[inline] + pub fn compute(&self) -> ComputedPercentage { + ComputedPercentage(self.0.get()) + } +}