Auto merge of #17073 - upsuper:flex-basis-zero, r=emilio

Set flex-basis to 0% when omitted in flex shorthand.

This should fix [bug 1331530](https://bugzilla.mozilla.org/show_bug.cgi?id=1331530).

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17073)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-05-29 17:58:44 -05:00 committed by GitHub
commit 76daf46295
4 changed files with 34 additions and 4 deletions

View file

@ -1099,9 +1099,14 @@
/// Returns a value representing a `0` length.
pub fn zero() -> Self {
use values::specified::length::{LengthOrPercentageOrAuto, NoCalcLength};
SpecifiedValue(MozLength::LengthOrPercentageOrAuto(
LengthOrPercentageOrAuto::Length(NoCalcLength::zero())))
use values::specified::length::LengthOrPercentageOrAuto;
SpecifiedValue(MozLength::LengthOrPercentageOrAuto(LengthOrPercentageOrAuto::zero()))
}
/// Returns a value representing a `0%` length.
pub fn zero_percent() -> Self {
use values::specified::length::LengthOrPercentageOrAuto;
SpecifiedValue(MozLength::LengthOrPercentageOrAuto(LengthOrPercentageOrAuto::zero_percent()))
}
}
% endif

View file

@ -92,7 +92,11 @@
Ok(expanded! {
flex_grow: grow.unwrap_or(Number::new(1.0)),
flex_shrink: shrink.unwrap_or(Number::new(1.0)),
flex_basis: basis.unwrap_or(longhands::flex_basis::SpecifiedValue::zero()),
// Per spec, this should be SpecifiedValue::zero(), but all
// browsers currently agree on using `0%`. This is a spec
// change which hasn't been adopted by browsers:
// https://github.com/w3c/csswg-drafts/commit/2c446befdf0f686217905bdd7c92409f6bd3921b
flex_basis: basis.unwrap_or(longhands::flex_basis::SpecifiedValue::zero_percent()),
})
}