Bug 925626 - Parse general_enclosed in @supports conditions properly. r=dbaron

This commit is contained in:
Cameron McCormack 2013-12-06 19:13:26 +11:00
parent ebbaf3e01f
commit 2261f22c78
3 changed files with 21 additions and 2 deletions

View File

@ -0,0 +1,18 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Test: An @supports rule condition with an unexpected token before the closing paren of a supports_condition_in_parens should parse as a general_enclosed</title>
<link rel="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au" />
<link rel="help" href="http://www.w3.org/TR/css3-conditional/#at-supports" />
<meta name="flags" content="" />
<meta name="assert" content="An @supports rule condition that has an unexpected token before the closing paren of a supports_condition_in_parens should parse as a general_enclosed and evaluate to false rather than fail to parse."/>
<link rel="match" href="support/pass.xht" />
<style type="text/css"><![CDATA[
@supports ((color: green) bad) or (color: green) {
html { background-color: green }
}
]]></style>
</head>
<body>
</body>
</html>

View File

@ -41,3 +41,4 @@ default-preferences pref(layout.css.supports-rule.enabled,true)
== css-supports-039.xht support/pass.xht
== css-supports-040.xht support/pass.xht
== css-supports-041.xht support/pass.xht
== css-supports-042.xht support/pass.xht

View File

@ -2789,9 +2789,9 @@ CSSParserImpl::ParseSupportsConditionInParens(bool& aConditionMet)
}
if (!(ExpectSymbol(')', true))) {
REPORT_UNEXPECTED_TOKEN(PESupportsConditionExpectedCloseParen);
SkipUntil(')');
return false;
aConditionMet = false;
return true;
}
return true;