From 7b144996659a5ebfe5da263dd4b8ab10a87e0749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Fri, 29 Mar 2019 11:11:27 +0000 Subject: [PATCH] style: Unship line-height: -moz-block-height. They're only used in forms.css, and only for some anonymous content, which are not content-accessible in the first place. The only place where this could be exposed is calling getComputedStyle(input, "::placeholder"), so I think this should be pretty safe, but I've added a pref just in case. While at it, also derive the Parse implementation. Less code is better. Differential Revision: https://phabricator.services.mozilla.com/D25118 --- components/style/values/generics/text.rs | 10 +++++++++ components/style/values/specified/text.rs | 27 ----------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/components/style/values/generics/text.rs b/components/style/values/generics/text.rs index 7dae932faac..509491c8624 100644 --- a/components/style/values/generics/text.rs +++ b/components/style/values/generics/text.rs @@ -61,6 +61,14 @@ impl Spacing { } } +#[cfg(feature = "gecko")] +fn line_height_moz_block_height_enabled(context: &ParserContext) -> bool { + use crate::gecko_bindings::structs; + context.in_ua_sheet() || unsafe { + structs::StaticPrefs_sVarCache_layout_css_line_height_moz_block_height_content_enabled + } +} + /// A generic value for the `line-height` property. #[derive( Animate, @@ -73,6 +81,7 @@ impl Spacing { SpecifiedValueInfo, ToAnimatedValue, ToCss, + Parse, )] #[repr(C, u8)] pub enum GenericLineHeight { @@ -80,6 +89,7 @@ pub enum GenericLineHeight { Normal, /// `-moz-block-height` #[cfg(feature = "gecko")] + #[parse(condition = "line_height_moz_block_height_enabled")] MozBlockHeight, /// `` Number(N), diff --git a/components/style/values/specified/text.rs b/components/style/values/specified/text.rs index 33bda52aa9d..1c2f8499af5 100644 --- a/components/style/values/specified/text.rs +++ b/components/style/values/specified/text.rs @@ -73,33 +73,6 @@ impl Parse for WordSpacing { } } -impl Parse for LineHeight { - fn parse<'i, 't>( - context: &ParserContext, - input: &mut Parser<'i, 't>, - ) -> Result> { - if let Ok(number) = input.try(|i| NonNegativeNumber::parse(context, i)) { - return Ok(GenericLineHeight::Number(number)); - } - if let Ok(nlp) = input.try(|i| NonNegativeLengthPercentage::parse(context, i)) { - return Ok(GenericLineHeight::Length(nlp)); - } - let location = input.current_source_location(); - let ident = input.expect_ident()?; - match ident { - ref ident if ident.eq_ignore_ascii_case("normal") => Ok(GenericLineHeight::Normal), - #[cfg(feature = "gecko")] - ref ident if ident.eq_ignore_ascii_case("-moz-block-height") => { - Ok(GenericLineHeight::MozBlockHeight) - }, - ident => { - Err(location - .new_custom_error(SelectorParseErrorKind::UnexpectedIdent(ident.clone()))) - }, - } - } -} - impl ToComputedValue for LineHeight { type ComputedValue = ComputedLineHeight;