| OLD | NEW |
| 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/frame/UseCounter.h" | 9 #include "core/frame/UseCounter.h" |
| 10 #include "platform/RuntimeEnabledFeatures.h" | 10 #include "platform/RuntimeEnabledFeatures.h" |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 } | 517 } |
| 518 case CSSSelector::PseudoLang: | 518 case CSSSelector::PseudoLang: |
| 519 { | 519 { |
| 520 // FIXME: CSS Selectors Level 4 allows :lang(*-foo) | 520 // FIXME: CSS Selectors Level 4 allows :lang(*-foo) |
| 521 const CSSParserToken& ident = block.consumeIncludingWhitespace(); | 521 const CSSParserToken& ident = block.consumeIncludingWhitespace(); |
| 522 if (ident.type() != IdentToken || !block.atEnd()) | 522 if (ident.type() != IdentToken || !block.atEnd()) |
| 523 return nullptr; | 523 return nullptr; |
| 524 selector->setArgument(ident.value()); | 524 selector->setArgument(ident.value()); |
| 525 return selector.release(); | 525 return selector.release(); |
| 526 } | 526 } |
| 527 case CSSSelector::PseudoDir: |
| 528 { |
| 529 const CSSParserToken& ident = block.consumeIncludingWhitespace(); |
| 530 if (ident.type() != IdentToken || !block.atEnd()) |
| 531 return nullptr; |
| 532 selector->setArgument(ident.value()); |
| 533 return selector.release(); |
| 534 } |
| 527 case CSSSelector::PseudoNthChild: | 535 case CSSSelector::PseudoNthChild: |
| 528 case CSSSelector::PseudoNthLastChild: | 536 case CSSSelector::PseudoNthLastChild: |
| 529 case CSSSelector::PseudoNthOfType: | 537 case CSSSelector::PseudoNthOfType: |
| 530 case CSSSelector::PseudoNthLastOfType: | 538 case CSSSelector::PseudoNthLastOfType: |
| 531 { | 539 { |
| 532 std::pair<int, int> ab; | 540 std::pair<int, int> ab; |
| 533 if (!consumeANPlusB(block, ab)) | 541 if (!consumeANPlusB(block, ab)) |
| 534 return nullptr; | 542 return nullptr; |
| 535 block.consumeWhitespace(); | 543 block.consumeWhitespace(); |
| 536 if (!block.atEnd()) | 544 if (!block.atEnd()) |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 763 | 771 |
| 764 if (!splitAfter || !splitAfter->tagHistory()) | 772 if (!splitAfter || !splitAfter->tagHistory()) |
| 765 return compoundSelector; | 773 return compoundSelector; |
| 766 | 774 |
| 767 OwnPtr<CSSParserSelector> secondCompound = splitAfter->releaseTagHistory(); | 775 OwnPtr<CSSParserSelector> secondCompound = splitAfter->releaseTagHistory(); |
| 768 secondCompound->appendTagHistory(secondCompound->pseudoType() == CSSSelector
::PseudoSlotted ? CSSSelector::ShadowSlot : CSSSelector::ShadowPseudo, compoundS
elector); | 776 secondCompound->appendTagHistory(secondCompound->pseudoType() == CSSSelector
::PseudoSlotted ? CSSSelector::ShadowSlot : CSSSelector::ShadowPseudo, compoundS
elector); |
| 769 return secondCompound.release(); | 777 return secondCompound.release(); |
| 770 } | 778 } |
| 771 | 779 |
| 772 } // namespace blink | 780 } // namespace blink |
| OLD | NEW |