mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
style: Parse '0' as a number for border-image-width.
As per CSS Values & Units: "However, if a 0 could be parsed as either a <number> or a <length> in a property (such as line-height), it must parse as a <number>." (https://drafts.csswg.org/css-values-4/#lengths) Differential Revision: https://phabricator.services.mozilla.com/D46723
This commit is contained in:
parent
a0e2aeb51c
commit
877c6ac821
2 changed files with 6 additions and 20 deletions
|
@ -16,6 +16,7 @@ use style_traits::{CssWriter, ToCss};
|
||||||
Copy,
|
Copy,
|
||||||
Debug,
|
Debug,
|
||||||
MallocSizeOf,
|
MallocSizeOf,
|
||||||
|
Parse,
|
||||||
PartialEq,
|
PartialEq,
|
||||||
SpecifiedValueInfo,
|
SpecifiedValueInfo,
|
||||||
ToComputedValue,
|
ToComputedValue,
|
||||||
|
@ -25,10 +26,13 @@ use style_traits::{CssWriter, ToCss};
|
||||||
)]
|
)]
|
||||||
#[repr(C, u8)]
|
#[repr(C, u8)]
|
||||||
pub enum GenericBorderImageSideWidth<LP, N> {
|
pub enum GenericBorderImageSideWidth<LP, N> {
|
||||||
|
/// `<number>`
|
||||||
|
///
|
||||||
|
/// NOTE: Numbers need to be before length-percentagess, in order to parse
|
||||||
|
/// them first, since `0` should be a number, not the `0px` length.
|
||||||
|
Number(N),
|
||||||
/// `<length-or-percentage>`
|
/// `<length-or-percentage>`
|
||||||
LengthPercentage(LP),
|
LengthPercentage(LP),
|
||||||
/// `<number>`
|
|
||||||
Number(N),
|
|
||||||
/// `auto`
|
/// `auto`
|
||||||
Auto,
|
Auto,
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,24 +180,6 @@ impl BorderImageSideWidth {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Parse for BorderImageSideWidth {
|
|
||||||
fn parse<'i, 't>(
|
|
||||||
context: &ParserContext,
|
|
||||||
input: &mut Parser<'i, 't>,
|
|
||||||
) -> Result<Self, ParseError<'i>> {
|
|
||||||
if input.try(|i| i.expect_ident_matching("auto")).is_ok() {
|
|
||||||
return Ok(GenericBorderImageSideWidth::Auto);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Ok(len) = input.try(|i| NonNegativeLengthPercentage::parse(context, i)) {
|
|
||||||
return Ok(GenericBorderImageSideWidth::LengthPercentage(len));
|
|
||||||
}
|
|
||||||
|
|
||||||
let num = NonNegativeNumber::parse(context, input)?;
|
|
||||||
Ok(GenericBorderImageSideWidth::Number(num))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Parse for BorderImageSlice {
|
impl Parse for BorderImageSlice {
|
||||||
fn parse<'i, 't>(
|
fn parse<'i, 't>(
|
||||||
context: &ParserContext,
|
context: &ParserContext,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue