Commit b207b031 authored by Rob Buis's avatar Rob Buis Committed by Commit Bot

Accept comments as separators in rgba/hsla

In order to make this work, because comments are already stripped
by the time ParseRGBParameters/ParseHSLParameters is reached, relax
the strictness and simply require the color components to be there.

This works since although the comment is stripped out, the effect is
that it still acts as a separator and will preserve numeric tokens:
1/* comment */2 -> NumericToken(1) + NumericToken(2)

Behavior matches Firefox.

Bug: 808888

Change-Id: I43ae53a0d7630b8229745a347c5fb914f8949589
Reviewed-on: https://chromium-review.googlesource.com/962989Reviewed-by: default avatarTimothy Loh <timloh@chromium.org>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Commit-Queue: Rob Buis <rob.buis@samsung.com>
Cr-Commit-Position: refs/heads/master@{#543337}
parent d3ac96b6
...@@ -99,7 +99,6 @@ external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/README [ Skip ] ...@@ -99,7 +99,6 @@ external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/README [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3 [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3 [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/background [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/background [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/check-for-references.sh [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/check-for-references.sh [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/color4 [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/conditional3 [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/conditional3 [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain [ Skip ]
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/css21 [ Skip ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/css21 [ Skip ]
......
...@@ -86,7 +86,7 @@ Failed to parse: rgb(( ...@@ -86,7 +86,7 @@ Failed to parse: rgb((
Failed to parse: rgb(88 Failed to parse: rgb(88
Failed to parse: rgb(9.43,(6.87 - Failed to parse: rgb(9.43,(6.87 -
Failed to parse: rgb(e)e. 5997 Failed to parse: rgb(e)e. 5997
Failed to parse: rgb(5 9-557 Parsed as rgb(5, 9, 0): rgb(5 9-557
Failed to parse: rgb((65-%-0,e217 Failed to parse: rgb((65-%-0,e217
Failed to parse: rgb( 2 Failed to parse: rgb( 2
Failed to parse: rgb((e Failed to parse: rgb((e
...@@ -185,7 +185,7 @@ Failed to parse: rgb(( ...@@ -185,7 +185,7 @@ Failed to parse: rgb((
Failed to parse: rgb(88 Failed to parse: rgb(88
Failed to parse: rgb(9.43,(6.87 - Failed to parse: rgb(9.43,(6.87 -
Failed to parse: rgb(e)e. 5997 Failed to parse: rgb(e)e. 5997
Failed to parse: rgb(5 9-557 Parsed as rgb(5, 9, 0): rgb(5 9-557
Failed to parse: rgb((65-%-0,e217 Failed to parse: rgb((65-%-0,e217
Failed to parse: rgb( 2 Failed to parse: rgb( 2
Failed to parse: rgb((e Failed to parse: rgb((e
......
...@@ -566,8 +566,7 @@ static bool ParseRGBParameters(CSSParserTokenRange& range, RGBA32& result) { ...@@ -566,8 +566,7 @@ static bool ParseRGBParameters(CSSParserTokenRange& range, RGBA32& result) {
if (i != 1 && !requires_commas) if (i != 1 && !requires_commas)
return false; return false;
requires_commas = true; requires_commas = true;
} else if (requires_commas || args.AtEnd() || } else if (requires_commas || args.AtEnd()) {
(&args.Peek() - 1)->GetType() != kWhitespaceToken) {
return false; return false;
} }
color_parameter = is_percent ? ConsumePercent(args, kValueRangeAll) color_parameter = is_percent ? ConsumePercent(args, kValueRangeAll)
...@@ -624,8 +623,7 @@ static bool ParseHSLParameters(CSSParserTokenRange& range, RGBA32& result) { ...@@ -624,8 +623,7 @@ static bool ParseHSLParameters(CSSParserTokenRange& range, RGBA32& result) {
if (i != 1 && !requires_commas) if (i != 1 && !requires_commas)
return false; return false;
requires_commas = true; requires_commas = true;
} else if (requires_commas || args.AtEnd() || } else if (requires_commas || args.AtEnd()) {
(&args.Peek() - 1)->GetType() != kWhitespaceToken) {
return false; return false;
} }
hsl_value = ConsumePercent(args, kValueRangeAll); hsl_value = ConsumePercent(args, kValueRangeAll);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment