diff options
21 files changed, 22 insertions, 129 deletions
diff --git a/components/style/properties/shorthand/position.mako.rs b/components/style/properties/shorthand/position.mako.rs index ea8592c7347..4710afd121e 100644 --- a/components/style/properties/shorthand/position.mako.rs +++ b/components/style/properties/shorthand/position.mako.rs @@ -4,49 +4,47 @@ <%namespace name="helpers" file="/helpers.mako.rs" /> +// https://drafts.csswg.org/css-flexbox/#flex-flow-property <%helpers:shorthand name="flex-flow" sub_properties="flex-direction flex-wrap" experimental="True"> use properties::longhands::{flex_direction, flex_wrap}; let mut direction = None; let mut wrap = None; - let mut any = false; loop { if direction.is_none() { if let Ok(value) = input.try(|input| flex_direction::parse(context, input)) { direction = Some(value); - any = true; continue } } if wrap.is_none() { if let Ok(value) = input.try(|input| flex_wrap::parse(context, input)) { wrap = Some(value); - any = true; continue } } break } - if any { - Ok(Longhands { - flex_direction: direction, - flex_wrap: wrap, - }) - } else { - Err(()) + if direction.is_none() && wrap.is_none() { + return Err(()) } + Ok(Longhands { + flex_direction: direction, + flex_wrap: wrap, + }) </%helpers:shorthand> +// https://drafts.csswg.org/css-flexbox/#flex-property <%helpers:shorthand name="flex" sub_properties="flex-grow flex-shrink flex-basis" experimental="True"> use app_units::Au; use values::specified::{Number, Length, LengthOrPercentageOrAutoOrContent}; pub fn parse_flexibility(input: &mut Parser) - -> Result<(Option<Number>, Option<Number>),()> { - let grow = Some(try!(Number::parse_non_negative(input))); + -> Result<(Number, Option<Number>),()> { + let grow = try!(Number::parse_non_negative(input)); let shrink = input.try(Number::parse_non_negative).ok(); Ok((grow, shrink)) } @@ -54,7 +52,6 @@ let mut grow = None; let mut shrink = None; let mut basis = None; - let mut any = false; if input.try(|input| input.expect_ident_matching("none")).is_ok() { return Ok(Longhands { @@ -66,40 +63,26 @@ loop { if grow.is_none() { if let Ok((flex_grow, flex_shrink)) = input.try(parse_flexibility) { - grow = flex_grow; + grow = Some(flex_grow); shrink = flex_shrink; - any = true; continue } } if basis.is_none() { if let Ok(value) = input.try(LengthOrPercentageOrAutoOrContent::parse) { basis = Some(value); - any = true; continue } } break } - if any { - if grow == None { - grow = Some(Number(1.0)); - } - if shrink == None && basis == None { - basis = Some(LengthOrPercentageOrAutoOrContent::Length(Length::Absolute(Au(0)))); - } - if shrink == None { - shrink = Some(Number(1.0)); - } - if basis == None { - basis = Some(LengthOrPercentageOrAutoOrContent::Auto); - } - Ok(Longhands { - flex_grow: grow, - flex_shrink: shrink, - flex_basis: basis, - }) - } else { - Err(()) + + if grow.is_none() && basis.is_none() { + return Err(()) } + Ok(Longhands { + flex_grow: grow.or(Some(Number(1.0))), + flex_shrink: shrink.or(Some(Number(1.0))), + flex_basis: basis.or(Some(LengthOrPercentageOrAutoOrContent::Length(Length::Absolute(Au(0))))) + }) </%helpers:shorthand> diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/css-flexbox-column-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/css-flexbox-column-reverse.htm.ini new file mode 100644 index 00000000000..0bb52b55f16 --- /dev/null +++ b/tests/wpt/metadata-css/css-flexbox-1_dev/html/css-flexbox-column-reverse.htm.ini @@ -0,0 +1,3 @@ +[css-flexbox-column-reverse.htm] + type: reftest + expected: FAIL diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-nowrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-nowrap.htm.ini deleted file mode 100644 index 787de3b280d..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-nowrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-nowrap.htm] - type: testharness - [flexbox | computed style | flex-flow: column nowrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-nowrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-nowrap.htm.ini deleted file mode 100644 index c6d809585a5..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-nowrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-reverse-nowrap.htm] - type: testharness - [flexbox | computed style | flex-flow: column-reverse nowrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-wrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-wrap.htm.ini deleted file mode 100644 index ef9ed52428d..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse-wrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-reverse-wrap.htm] - type: testharness - [flexbox | computed style | flex-flow: column-reverse wrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse.htm.ini deleted file mode 100644 index f94aa2f8c92..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-reverse.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-reverse.htm] - type: testharness - [flexbox | computed style | flex-flow: column-reverse] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap-reverse.htm.ini deleted file mode 100644 index fb3675dd9a7..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap-reverse.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-wrap-reverse.htm] - type: testharness - [flexbox | computed style | flex-flow: column wrap-reverse] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap.htm.ini deleted file mode 100644 index 5f960af2a59..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column-wrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column-wrap.htm] - type: testharness - [flexbox | computed style | flex-flow: column wrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column.htm.ini deleted file mode 100644 index 020ea13daa0..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-column.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-column.htm] - type: testharness - [flexbox | computed style | flex-flow: column] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-nowrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-nowrap.htm.ini deleted file mode 100644 index 0a754375423..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-nowrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-reverse-nowrap.htm] - type: testharness - [flexbox | computed style | flex-flow: row-reverse nowrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.htm.ini deleted file mode 100644 index ff7b03597e2..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.htm] - type: testharness - [flexbox | computed style | flex-flow: row-reverse wrap-reverse] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap.htm.ini deleted file mode 100644 index f6b63035604..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse-wrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-reverse-wrap.htm] - type: testharness - [flexbox | computed style | flex-flow: row-reverse wrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse.htm.ini deleted file mode 100644 index 7e5604f5976..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-reverse.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-reverse.htm] - type: testharness - [flexbox | computed style | flex-flow: row-reverse] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap-reverse.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap-reverse.htm.ini deleted file mode 100644 index 46527212625..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap-reverse.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-wrap-reverse.htm] - type: testharness - [flexbox | computed style | flex-flow: row wrap-reverse] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap.htm.ini deleted file mode 100644 index 1106ebae9b9..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-row-wrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-row-wrap.htm] - type: testharness - [flexbox | computed style | flex-flow: row wrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-wrap.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-wrap.htm.ini deleted file mode 100644 index 167643c5189..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-flow-wrap.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-flow-wrap.htm] - type: testharness - [flexbox | computed style | flex-flow: wrap] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-auto.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-auto.htm.ini deleted file mode 100644 index 115c9f622a3..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-auto.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-shorthand-auto.htm] - type: testharness - [flexbox | computed style | flex: auto] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-none.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-none.htm.ini deleted file mode 100644 index 8c8e31ec0b0..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-none.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-shorthand-none.htm] - type: testharness - [flexbox | computed style | flex: auto] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-number.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-number.htm.ini deleted file mode 100644 index 13b8a30d711..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand-number.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-shorthand-number.htm] - type: testharness - [flexbox | computed style | flex: number] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand.htm.ini deleted file mode 100644 index 649c9094029..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flexbox_computedstyle_flex-shorthand.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[flexbox_computedstyle_flex-shorthand.htm] - type: testharness - [flexbox | computed style | flex: invalid] - expected: FAIL - diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/percentage-heights-000.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/percentage-heights-000.htm.ini index 563ef0309dc..33ebe02cd5a 100644 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/percentage-heights-000.htm.ini +++ b/tests/wpt/metadata-css/css-flexbox-1_dev/html/percentage-heights-000.htm.ini @@ -9,9 +9,6 @@ [.flexbox 3] expected: FAIL - [.flexbox 4] - expected: FAIL - [.flexbox 5] expected: FAIL |