Bug 1041951 - rework computed value of font-variant to support only 2.1 values. r=dbaron

This commit is contained in:
John Daggett 2014-08-20 16:54:27 +09:00
parent e76e48d5b2
commit 127300e717
3 changed files with 33 additions and 1 deletions

View File

@ -1533,6 +1533,37 @@ nsComputedDOMStyle::DoGetFontSynthesis()
return val;
}
// return a value *only* for valid longhand values from CSS 2.1, either
// normal or small-caps only
CSSValue*
nsComputedDOMStyle::DoGetFontVariant()
{
const nsFont& f = StyleFont()->mFont;
// if any of the other font-variant subproperties other than
// font-variant-caps are not normal then can't calculate a computed value
if (f.variantAlternates || f.variantEastAsian || f.variantLigatures ||
f.variantNumeric || f.variantPosition) {
return nullptr;
}
nsCSSKeyword keyword;
switch (f.variantCaps) {
case 0:
keyword = eCSSKeyword_normal;
break;
case NS_FONT_VARIANT_CAPS_SMALLCAPS:
keyword = eCSSKeyword_small_caps;
break;
default:
return nullptr;
}
nsROCSSPrimitiveValue* val = new nsROCSSPrimitiveValue;
val->SetIdent(keyword);
return val;
}
CSSValue*
nsComputedDOMStyle::DoGetFontVariantAlternates()
{
@ -1563,7 +1594,6 @@ nsComputedDOMStyle::DoGetFontVariantAlternates()
return val;
}
CSSValue*
nsComputedDOMStyle::DoGetFontVariantCaps()
{

View File

@ -253,6 +253,7 @@ private:
mozilla::dom::CSSValue* DoGetFontStretch();
mozilla::dom::CSSValue* DoGetFontStyle();
mozilla::dom::CSSValue* DoGetFontSynthesis();
mozilla::dom::CSSValue* DoGetFontVariant();
mozilla::dom::CSSValue* DoGetFontVariantAlternates();
mozilla::dom::CSSValue* DoGetFontVariantCaps();
mozilla::dom::CSSValue* DoGetFontVariantEastAsian();

View File

@ -123,6 +123,7 @@ COMPUTED_STYLE_PROP(font_size_adjust, FontSizeAdjust)
COMPUTED_STYLE_PROP(font_stretch, FontStretch)
COMPUTED_STYLE_PROP(font_style, FontStyle)
COMPUTED_STYLE_PROP(font_synthesis, FontSynthesis)
COMPUTED_STYLE_PROP(font_variant, FontVariant)
COMPUTED_STYLE_PROP(font_variant_alternates, FontVariantAlternates)
COMPUTED_STYLE_PROP(font_variant_caps, FontVariantCaps)
COMPUTED_STYLE_PROP(font_variant_east_asian, FontVariantEastAsian)