Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp |
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp |
| index bfd0f9fab4f5a90fbc5758c04248954b227fa73a..fda48705691bbdf542fd255ca204e15b3e9f51a2 100644 |
| --- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp |
| +++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp |
| @@ -78,9 +78,8 @@ CSSSelectorList CSSSelectorParser::parseSelector(CSSParserTokenRange range, cons |
| } |
| CSSSelectorParser::CSSSelectorParser(const CSSParserContext& context, StyleSheetContents* styleSheet) |
| -: m_context(context) |
| -, m_styleSheet(styleSheet) |
| -, m_failedParsing(false) |
| + : m_context(context) |
| + , m_styleSheet(styleSheet) |
| { |
| } |
| @@ -107,6 +106,8 @@ CSSSelectorList CSSSelectorParser::consumeComplexSelectorList(CSSParserTokenRang |
| CSSSelectorList CSSSelectorParser::consumeCompoundSelectorList(CSSParserTokenRange& range) |
| { |
| + DisallowPseudoElementsScope scope(this); |
|
Timothy Loh
2016/01/11 05:20:54
I think it would make more sense for this to be at
rune
2016/01/11 09:30:22
Done.
|
| + |
| Vector<OwnPtr<CSSParserSelector>> selectorList; |
| OwnPtr<CSSParserSelector> selector = consumeCompoundSelector(range); |
| range.consumeWhitespace(); |
| @@ -334,6 +335,9 @@ PassOwnPtr<CSSParserSelector> CSSSelectorParser::consumePseudo(CSSParserTokenRan |
| bool hasArguments = token.type() == FunctionToken; |
| selector->updatePseudoType(AtomicString(value.is8Bit() ? value.lower() : value), hasArguments); |
| + if (selector->match() == CSSSelector::PseudoElement && m_disallowPseudoElements) |
| + return nullptr; |
| + |
| if (token.type() == IdentToken) { |
| range.consume(); |
| if (selector->pseudoType() == CSSSelector::PseudoUnknown) |