fix handling of some malformed css #1
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes two incompatibilities between shady-css-parser
and browsers.
If the css is missing a closing brace like
div { color:red
then Shady drops the last rule, but browsers keep it.
If a css ruleset has an empty selector like
/*empty*/
{ color: red }div { color: blue }
then Shady discards the { } and produces this:
color:red;div { color: blue; }
which has an entirely different meaning.
Browsers parse the empty-selector block, but then ignore it
as invalid.
For this case, we could either make Shady keep the block
or drop the block. I decided to keep the block, because
Shady generally passes through many other not-quite-valid
css text that browsers would ignore.