Index: Source/core/css/MediaQueryExp.cpp |
diff --git a/Source/core/css/MediaQueryExp.cpp b/Source/core/css/MediaQueryExp.cpp |
index 253350d1da9e82a17d88230d3e71f61a8302ebcb..8e3107add808a3c8a42a7d5f7f5ebd8ce0b62326 100644 |
--- a/Source/core/css/MediaQueryExp.cpp |
+++ b/Source/core/css/MediaQueryExp.cpp |
@@ -67,9 +67,27 @@ static inline bool featureWithValidIdent(const String& mediaFeature, CSSValueID |
return false; |
} |
+static bool positiveLengthUnit(const int unit) |
+{ |
+ switch (unit) { |
+ case CSSPrimitiveValue::CSS_EMS: |
+ case CSSPrimitiveValue::CSS_EXS: |
+ case CSSPrimitiveValue::CSS_PX: |
+ case CSSPrimitiveValue::CSS_CM: |
+ case CSSPrimitiveValue::CSS_MM: |
+ case CSSPrimitiveValue::CSS_IN: |
+ case CSSPrimitiveValue::CSS_PT: |
+ case CSSPrimitiveValue::CSS_PC: |
+ case CSSPrimitiveValue::CSS_REMS: |
+ case CSSPrimitiveValue::CSS_CHS: |
+ return true; |
+ } |
+ return false; |
+} |
+ |
static inline bool featureWithValidPositiveLength(const String& mediaFeature, const CSSParserValue* value) |
{ |
- if (!(((value->unit >= CSSPrimitiveValue::CSS_EMS && value->unit <= CSSPrimitiveValue::CSS_PC) || value->unit == CSSPrimitiveValue::CSS_REMS) || (value->unit == CSSPrimitiveValue::CSS_NUMBER && !(value->fValue))) || value->fValue < 0) |
+ if (!(positiveLengthUnit(value->unit) || (value->unit == CSSPrimitiveValue::CSS_NUMBER && value->fValue == 0)) || value->fValue < 0) |
return false; |