Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(276)

Side by Side Diff: third_party/WebKit/Source/core/css/parser/CSSSupportsParser.cpp

Issue 1636453002: Use ASCII case-insensitive matching for ident-likes in the CSS parser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Consistent indentation in test. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/css/parser/CSSSupportsParser.h" 5 #include "core/css/parser/CSSSupportsParser.h"
6 6
7 #include "core/css/parser/CSSParserImpl.h" 7 #include "core/css/parser/CSSParserImpl.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 if (range.consumeIncludingWhitespace().type() != WhitespaceToken) 43 if (range.consumeIncludingWhitespace().type() != WhitespaceToken)
44 return Invalid; 44 return Invalid;
45 if (range.atEnd()) 45 if (range.atEnd())
46 break; 46 break;
47 47
48 const CSSParserToken& token = range.consume(); 48 const CSSParserToken& token = range.consume();
49 if (token.type() != IdentToken) 49 if (token.type() != IdentToken)
50 return Invalid; 50 return Invalid;
51 if (clauseType == Unresolved) 51 if (clauseType == Unresolved)
52 clauseType = token.value().length() == 3 ? Conjunction : Disjunction ; 52 clauseType = token.value().length() == 3 ? Conjunction : Disjunction ;
53 if ((clauseType == Conjunction && !equalIgnoringCase(token.value(), "and ")) 53 if ((clauseType == Conjunction && !token.valueEqualsIgnoringASCIICase("a nd"))
54 || (clauseType == Disjunction && !equalIgnoringCase(token.value(), " or"))) 54 || (clauseType == Disjunction && !token.valueEqualsIgnoringASCIICase ("or")))
55 return Invalid; 55 return Invalid;
56 56
57 if (range.consumeIncludingWhitespace().type() != WhitespaceToken) 57 if (range.consumeIncludingWhitespace().type() != WhitespaceToken)
58 return Invalid; 58 return Invalid;
59 } 59 }
60 return result ? Supported : Unsupported; 60 return result ? Supported : Unsupported;
61 } 61 }
62 62
63 CSSSupportsParser::SupportsResult CSSSupportsParser::consumeNegation(CSSParserTo kenRange range) 63 CSSSupportsParser::SupportsResult CSSSupportsParser::consumeNegation(CSSParserTo kenRange range)
64 { 64 {
65 ASSERT(range.peek().type() == IdentToken); 65 ASSERT(range.peek().type() == IdentToken);
66 if (!equalIgnoringCase(range.consume().value(), "not")) 66 if (!range.consume().valueEqualsIgnoringASCIICase("not"))
67 return Invalid; 67 return Invalid;
68 if (range.consumeIncludingWhitespace().type() != WhitespaceToken) 68 if (range.consumeIncludingWhitespace().type() != WhitespaceToken)
69 return Invalid; 69 return Invalid;
70 SupportsResult result = consumeConditionInParenthesis(range); 70 SupportsResult result = consumeConditionInParenthesis(range);
71 range.consumeWhitespace(); 71 range.consumeWhitespace();
72 if (!range.atEnd() || result == Invalid) 72 if (!range.atEnd() || result == Invalid)
73 return Invalid; 73 return Invalid;
74 return result ? Unsupported : Supported; 74 return result ? Unsupported : Supported;
75 } 75 }
76 76
77 CSSSupportsParser::SupportsResult CSSSupportsParser::consumeConditionInParenthes is(CSSParserTokenRange& range) 77 CSSSupportsParser::SupportsResult CSSSupportsParser::consumeConditionInParenthes is(CSSParserTokenRange& range)
78 { 78 {
79 if (range.peek().type() == FunctionToken) { 79 if (range.peek().type() == FunctionToken) {
80 range.consumeComponentValue(); 80 range.consumeComponentValue();
81 return Unsupported; 81 return Unsupported;
82 } 82 }
83 if (range.peek().type() != LeftParenthesisToken) 83 if (range.peek().type() != LeftParenthesisToken)
84 return Invalid; 84 return Invalid;
85 CSSParserTokenRange innerRange = range.consumeBlock(); 85 CSSParserTokenRange innerRange = range.consumeBlock();
86 innerRange.consumeWhitespace(); 86 innerRange.consumeWhitespace();
87 SupportsResult result = consumeCondition(innerRange); 87 SupportsResult result = consumeCondition(innerRange);
88 if (result != Invalid) 88 if (result != Invalid)
89 return result; 89 return result;
90 return innerRange.peek().type() == IdentToken && m_parser.supportsDeclaratio n(innerRange) ? Supported : Unsupported; 90 return innerRange.peek().type() == IdentToken && m_parser.supportsDeclaratio n(innerRange) ? Supported : Unsupported;
91 } 91 }
92 92
93 } // namespace blink 93 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698