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

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

Issue 2755493004: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in core/css/ (Closed)
Patch Set: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in core/css/ Created 3 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/CSSSelectorParser.h" 5 #include "core/css/parser/CSSSelectorParser.h"
6 6
7 #include "core/css/CSSSelectorList.h" 7 #include "core/css/CSSSelectorList.h"
8 #include "core/css/StyleSheetContents.h" 8 #include "core/css/StyleSheetContents.h"
9 #include "core/css/parser/CSSParserContext.h" 9 #include "core/css/parser/CSSParserContext.h"
10 #include "core/frame/Deprecation.h" 10 #include "core/frame/Deprecation.h"
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 const CSSParserSelector& simpleSelector, 205 const CSSParserSelector& simpleSelector,
206 CSSSelector::PseudoType compoundPseudoElement) { 206 CSSSelector::PseudoType compoundPseudoElement) {
207 if (compoundPseudoElement == CSSSelector::PseudoUnknown) 207 if (compoundPseudoElement == CSSSelector::PseudoUnknown)
208 return true; 208 return true;
209 if (compoundPseudoElement == CSSSelector::PseudoContent) 209 if (compoundPseudoElement == CSSSelector::PseudoContent)
210 return simpleSelector.match() != CSSSelector::PseudoElement; 210 return simpleSelector.match() != CSSSelector::PseudoElement;
211 if (simpleSelector.match() != CSSSelector::PseudoClass) 211 if (simpleSelector.match() != CSSSelector::PseudoClass)
212 return false; 212 return false;
213 CSSSelector::PseudoType pseudo = simpleSelector.pseudoType(); 213 CSSSelector::PseudoType pseudo = simpleSelector.pseudoType();
214 if (pseudo == CSSSelector::PseudoNot) { 214 if (pseudo == CSSSelector::PseudoNot) {
215 ASSERT(simpleSelector.selectorList()); 215 DCHECK(simpleSelector.selectorList());
216 ASSERT(simpleSelector.selectorList()->first()); 216 DCHECK(simpleSelector.selectorList()->first());
217 ASSERT(!simpleSelector.selectorList()->first()->tagHistory()); 217 DCHECK(!simpleSelector.selectorList()->first()->tagHistory());
218 pseudo = simpleSelector.selectorList()->first()->getPseudoType(); 218 pseudo = simpleSelector.selectorList()->first()->getPseudoType();
219 } 219 }
220 return isPseudoClassValidAfterPseudoElement(pseudo, compoundPseudoElement); 220 return isPseudoClassValidAfterPseudoElement(pseudo, compoundPseudoElement);
221 } 221 }
222 222
223 } // namespace 223 } // namespace
224 224
225 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeCompoundSelector( 225 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeCompoundSelector(
226 CSSParserTokenRange& range) { 226 CSSParserTokenRange& range) {
227 std::unique_ptr<CSSParserSelector> compoundSelector; 227 std::unique_ptr<CSSParserSelector> compoundSelector;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 name = nullAtom; 334 name = nullAtom;
335 namespacePrefix = nullAtom; 335 namespacePrefix = nullAtom;
336 return false; 336 return false;
337 } 337 }
338 338
339 return true; 339 return true;
340 } 340 }
341 341
342 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeId( 342 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeId(
343 CSSParserTokenRange& range) { 343 CSSParserTokenRange& range) {
344 ASSERT(range.peek().type() == HashToken); 344 DCHECK_EQ(range.peek().type(), HashToken);
345 if (range.peek().getHashTokenType() != HashTokenId) 345 if (range.peek().getHashTokenType() != HashTokenId)
346 return nullptr; 346 return nullptr;
347 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create(); 347 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
348 selector->setMatch(CSSSelector::Id); 348 selector->setMatch(CSSSelector::Id);
349 AtomicString value = range.consume().value().toAtomicString(); 349 AtomicString value = range.consume().value().toAtomicString();
350 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode())); 350 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
351 return selector; 351 return selector;
352 } 352 }
353 353
354 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeClass( 354 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeClass(
355 CSSParserTokenRange& range) { 355 CSSParserTokenRange& range) {
356 ASSERT(range.peek().type() == DelimiterToken); 356 DCHECK_EQ(range.peek().type(), DelimiterToken);
357 ASSERT(range.peek().delimiter() == '.'); 357 DCHECK_EQ(range.peek().delimiter(), '.');
358 range.consume(); 358 range.consume();
359 if (range.peek().type() != IdentToken) 359 if (range.peek().type() != IdentToken)
360 return nullptr; 360 return nullptr;
361 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create(); 361 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
362 selector->setMatch(CSSSelector::Class); 362 selector->setMatch(CSSSelector::Class);
363 AtomicString value = range.consume().value().toAtomicString(); 363 AtomicString value = range.consume().value().toAtomicString();
364 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode())); 364 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
365 return selector; 365 return selector;
366 } 366 }
367 367
368 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeAttribute( 368 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeAttribute(
369 CSSParserTokenRange& range) { 369 CSSParserTokenRange& range) {
370 ASSERT(range.peek().type() == LeftBracketToken); 370 DCHECK_EQ(range.peek().type(), LeftBracketToken);
371 CSSParserTokenRange block = range.consumeBlock(); 371 CSSParserTokenRange block = range.consumeBlock();
372 block.consumeWhitespace(); 372 block.consumeWhitespace();
373 373
374 AtomicString namespacePrefix; 374 AtomicString namespacePrefix;
375 AtomicString attributeName; 375 AtomicString attributeName;
376 if (!consumeName(block, attributeName, namespacePrefix)) 376 if (!consumeName(block, attributeName, namespacePrefix))
377 return nullptr; 377 return nullptr;
378 if (attributeName == starAtom) 378 if (attributeName == starAtom)
379 return nullptr; 379 return nullptr;
380 block.consumeWhitespace(); 380 block.consumeWhitespace();
(...skipping 27 matching lines...) Expand all
408 selector->setValue(attributeValue.value().toAtomicString()); 408 selector->setValue(attributeValue.value().toAtomicString());
409 selector->setAttribute(qualifiedName, consumeAttributeFlags(block)); 409 selector->setAttribute(qualifiedName, consumeAttributeFlags(block));
410 410
411 if (!block.atEnd()) 411 if (!block.atEnd())
412 return nullptr; 412 return nullptr;
413 return selector; 413 return selector;
414 } 414 }
415 415
416 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumePseudo( 416 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumePseudo(
417 CSSParserTokenRange& range) { 417 CSSParserTokenRange& range) {
418 ASSERT(range.peek().type() == ColonToken); 418 DCHECK_EQ(range.peek().type(), ColonToken);
419 range.consume(); 419 range.consume();
420 420
421 int colons = 1; 421 int colons = 1;
422 if (range.peek().type() == ColonToken) { 422 if (range.peek().type() == ColonToken) {
423 range.consume(); 423 range.consume();
424 colons++; 424 colons++;
425 } 425 }
426 426
427 const CSSParserToken& token = range.peek(); 427 const CSSParserToken& token = range.peek();
428 if (token.type() != IdentToken && token.type() != FunctionToken) 428 if (token.type() != IdentToken && token.type() != FunctionToken)
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 } 885 }
886 if (current->relation() == CSSSelector::IndirectAdjacent) 886 if (current->relation() == CSSSelector::IndirectAdjacent)
887 m_context->count(UseCounter::CSSSelectorIndirectAdjacent); 887 m_context->count(UseCounter::CSSSelectorIndirectAdjacent);
888 if (current->selectorList()) 888 if (current->selectorList())
889 recordUsageAndDeprecations(*current->selectorList()); 889 recordUsageAndDeprecations(*current->selectorList());
890 } 890 }
891 } 891 }
892 } 892 }
893 893
894 } // namespace blink 894 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698