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

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: All windows error are Resolved now. Created 3 years, 8 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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 name = nullAtom; 339 name = nullAtom;
340 namespacePrefix = nullAtom; 340 namespacePrefix = nullAtom;
341 return false; 341 return false;
342 } 342 }
343 343
344 return true; 344 return true;
345 } 345 }
346 346
347 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeId( 347 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeId(
348 CSSParserTokenRange& range) { 348 CSSParserTokenRange& range) {
349 ASSERT(range.peek().type() == HashToken); 349 DCHECK_EQ(range.peek().type(), HashToken);
350 if (range.peek().getHashTokenType() != HashTokenId) 350 if (range.peek().getHashTokenType() != HashTokenId)
351 return nullptr; 351 return nullptr;
352 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create(); 352 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
353 selector->setMatch(CSSSelector::Id); 353 selector->setMatch(CSSSelector::Id);
354 AtomicString value = range.consume().value().toAtomicString(); 354 AtomicString value = range.consume().value().toAtomicString();
355 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode())); 355 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
356 return selector; 356 return selector;
357 } 357 }
358 358
359 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeClass( 359 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeClass(
360 CSSParserTokenRange& range) { 360 CSSParserTokenRange& range) {
361 ASSERT(range.peek().type() == DelimiterToken); 361 DCHECK_EQ(range.peek().type(), DelimiterToken);
362 ASSERT(range.peek().delimiter() == '.'); 362 DCHECK_EQ(range.peek().delimiter(), '.');
363 range.consume(); 363 range.consume();
364 if (range.peek().type() != IdentToken) 364 if (range.peek().type() != IdentToken)
365 return nullptr; 365 return nullptr;
366 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create(); 366 std::unique_ptr<CSSParserSelector> selector = CSSParserSelector::create();
367 selector->setMatch(CSSSelector::Class); 367 selector->setMatch(CSSSelector::Class);
368 AtomicString value = range.consume().value().toAtomicString(); 368 AtomicString value = range.consume().value().toAtomicString();
369 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode())); 369 selector->setValue(value, isQuirksModeBehavior(m_context->matchMode()));
370 return selector; 370 return selector;
371 } 371 }
372 372
373 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeAttribute( 373 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeAttribute(
374 CSSParserTokenRange& range) { 374 CSSParserTokenRange& range) {
375 ASSERT(range.peek().type() == LeftBracketToken); 375 DCHECK_EQ(range.peek().type(), LeftBracketToken);
376 CSSParserTokenRange block = range.consumeBlock(); 376 CSSParserTokenRange block = range.consumeBlock();
377 block.consumeWhitespace(); 377 block.consumeWhitespace();
378 378
379 AtomicString namespacePrefix; 379 AtomicString namespacePrefix;
380 AtomicString attributeName; 380 AtomicString attributeName;
381 if (!consumeName(block, attributeName, namespacePrefix)) 381 if (!consumeName(block, attributeName, namespacePrefix))
382 return nullptr; 382 return nullptr;
383 if (attributeName == starAtom) 383 if (attributeName == starAtom)
384 return nullptr; 384 return nullptr;
385 block.consumeWhitespace(); 385 block.consumeWhitespace();
(...skipping 27 matching lines...) Expand all
413 selector->setValue(attributeValue.value().toAtomicString()); 413 selector->setValue(attributeValue.value().toAtomicString());
414 selector->setAttribute(qualifiedName, consumeAttributeFlags(block)); 414 selector->setAttribute(qualifiedName, consumeAttributeFlags(block));
415 415
416 if (!block.atEnd()) 416 if (!block.atEnd())
417 return nullptr; 417 return nullptr;
418 return selector; 418 return selector;
419 } 419 }
420 420
421 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumePseudo( 421 std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumePseudo(
422 CSSParserTokenRange& range) { 422 CSSParserTokenRange& range) {
423 ASSERT(range.peek().type() == ColonToken); 423 DCHECK_EQ(range.peek().type(), ColonToken);
424 range.consume(); 424 range.consume();
425 425
426 int colons = 1; 426 int colons = 1;
427 if (range.peek().type() == ColonToken) { 427 if (range.peek().type() == ColonToken) {
428 range.consume(); 428 range.consume();
429 colons++; 429 colons++;
430 } 430 }
431 431
432 const CSSParserToken& token = range.peek(); 432 const CSSParserToken& token = range.peek();
433 if (token.type() != IdentToken && token.type() != FunctionToken) 433 if (token.type() != IdentToken && token.type() != FunctionToken)
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 } 890 }
891 if (current->relation() == CSSSelector::IndirectAdjacent) 891 if (current->relation() == CSSSelector::IndirectAdjacent)
892 m_context->count(UseCounter::CSSSelectorIndirectAdjacent); 892 m_context->count(UseCounter::CSSSelectorIndirectAdjacent);
893 if (current->selectorList()) 893 if (current->selectorList())
894 recordUsageAndDeprecations(*current->selectorList()); 894 recordUsageAndDeprecations(*current->selectorList());
895 } 895 }
896 } 896 }
897 } 897 }
898 898
899 } // namespace blink 899 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698