OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * 1999 Waldo Bastian (bastian@kde.org) | 3 * 1999 Waldo Bastian (bastian@kde.org) |
4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) | 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) |
5 * 2001-2003 Dirk Mueller (mueller@kde.org) | 5 * 2001-2003 Dirk Mueller (mueller@kde.org) |
6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. | 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. |
7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) | 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) |
8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
257 case PseudoPastCue: | 257 case PseudoPastCue: |
258 case PseudoUnresolved: | 258 case PseudoUnresolved: |
259 case PseudoContent: | 259 case PseudoContent: |
260 case PseudoHost: | 260 case PseudoHost: |
261 case PseudoHostContext: | 261 case PseudoHostContext: |
262 case PseudoShadow: | 262 case PseudoShadow: |
263 case PseudoFullScreen: | 263 case PseudoFullScreen: |
264 case PseudoFullScreenAncestor: | 264 case PseudoFullScreenAncestor: |
265 case PseudoSpatialNavigationFocus: | 265 case PseudoSpatialNavigationFocus: |
266 case PseudoListBox: | 266 case PseudoListBox: |
267 case PseudoSlotted: | |
267 return NOPSEUDO; | 268 return NOPSEUDO; |
268 } | 269 } |
269 | 270 |
270 ASSERT_NOT_REACHED(); | 271 ASSERT_NOT_REACHED(); |
271 return NOPSEUDO; | 272 return NOPSEUDO; |
272 } | 273 } |
273 | 274 |
274 // Could be made smaller and faster by replacing pointer with an | 275 // Could be made smaller and faster by replacing pointer with an |
275 // offset into a string buffer and making the bit fields smaller but | 276 // offset into a string buffer and making the bit fields smaller but |
276 // that could not be maintained by hand. | 277 // that could not be maintained by hand. |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
360 {"-webkit-any", CSSSelector::PseudoAny}, | 361 {"-webkit-any", CSSSelector::PseudoAny}, |
361 {"cue", CSSSelector::PseudoCue}, | 362 {"cue", CSSSelector::PseudoCue}, |
362 {"host", CSSSelector::PseudoHost}, | 363 {"host", CSSSelector::PseudoHost}, |
363 {"host-context", CSSSelector::PseudoHostContext}, | 364 {"host-context", CSSSelector::PseudoHostContext}, |
364 {"lang", CSSSelector::PseudoLang}, | 365 {"lang", CSSSelector::PseudoLang}, |
365 {"not", CSSSelector::PseudoNot}, | 366 {"not", CSSSelector::PseudoNot}, |
366 {"nth-child", CSSSelector::PseudoNthChild}, | 367 {"nth-child", CSSSelector::PseudoNthChild}, |
367 {"nth-last-child", CSSSelector::PseudoNthLastChild}, | 368 {"nth-last-child", CSSSelector::PseudoNthLastChild}, |
368 {"nth-last-of-type", CSSSelector::PseudoNthLastOfType}, | 369 {"nth-last-of-type", CSSSelector::PseudoNthLastOfType}, |
369 {"nth-of-type", CSSSelector::PseudoNthOfType}, | 370 {"nth-of-type", CSSSelector::PseudoNthOfType}, |
371 {"slotted", CSSSelector::PseudoSlotted}, | |
370 }; | 372 }; |
371 | 373 |
372 class NameToPseudoCompare { | 374 class NameToPseudoCompare { |
373 public: | 375 public: |
374 NameToPseudoCompare(const AtomicString& key) : m_key(key) { ASSERT(m_key.is8 Bit()); } | 376 NameToPseudoCompare(const AtomicString& key) : m_key(key) { ASSERT(m_key.is8 Bit()); } |
375 | 377 |
376 bool operator()(const NameToPseudoStruct& entry, const NameToPseudoStruct&) | 378 bool operator()(const NameToPseudoStruct& entry, const NameToPseudoStruct&) |
377 { | 379 { |
378 ASSERT(entry.string); | 380 ASSERT(entry.string); |
379 const char* key = reinterpret_cast<const char*>(m_key.characters8()); | 381 const char* key = reinterpret_cast<const char*>(m_key.characters8()); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
474 case PseudoScrollbar: | 476 case PseudoScrollbar: |
475 case PseudoScrollbarCorner: | 477 case PseudoScrollbarCorner: |
476 case PseudoScrollbarButton: | 478 case PseudoScrollbarButton: |
477 case PseudoScrollbarThumb: | 479 case PseudoScrollbarThumb: |
478 case PseudoScrollbarTrack: | 480 case PseudoScrollbarTrack: |
479 case PseudoScrollbarTrackPiece: | 481 case PseudoScrollbarTrackPiece: |
480 case PseudoSelection: | 482 case PseudoSelection: |
481 case PseudoWebKitCustomElement: | 483 case PseudoWebKitCustomElement: |
482 case PseudoContent: | 484 case PseudoContent: |
483 case PseudoShadow: | 485 case PseudoShadow: |
486 case PseudoSlotted: | |
484 if (m_match != PseudoElement) | 487 if (m_match != PseudoElement) |
485 m_pseudoType = PseudoUnknown; | 488 m_pseudoType = PseudoUnknown; |
486 break; | 489 break; |
487 case PseudoFirstPage: | 490 case PseudoFirstPage: |
488 case PseudoLeftPage: | 491 case PseudoLeftPage: |
489 case PseudoRightPage: | 492 case PseudoRightPage: |
490 if (m_match != PagePseudoClass) | 493 if (m_match != PagePseudoClass) |
491 m_pseudoType = PseudoUnknown; | 494 m_pseudoType = PseudoUnknown; |
492 break; | 495 break; |
493 case PseudoActive: | 496 case PseudoActive: |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
718 return tagHistory->selectorText(" > " + str.toString() + rightSide); | 721 return tagHistory->selectorText(" > " + str.toString() + rightSide); |
719 case ShadowDeep: | 722 case ShadowDeep: |
720 return tagHistory->selectorText(" /deep/ " + str.toString() + rightS ide); | 723 return tagHistory->selectorText(" /deep/ " + str.toString() + rightS ide); |
721 case DirectAdjacent: | 724 case DirectAdjacent: |
722 return tagHistory->selectorText(" + " + str.toString() + rightSide); | 725 return tagHistory->selectorText(" + " + str.toString() + rightSide); |
723 case IndirectAdjacent: | 726 case IndirectAdjacent: |
724 return tagHistory->selectorText(" ~ " + str.toString() + rightSide); | 727 return tagHistory->selectorText(" ~ " + str.toString() + rightSide); |
725 case SubSelector: | 728 case SubSelector: |
726 ASSERT_NOT_REACHED(); | 729 ASSERT_NOT_REACHED(); |
727 case ShadowPseudo: | 730 case ShadowPseudo: |
731 case ShadowSlot: | |
728 return tagHistory->selectorText(str.toString() + rightSide); | 732 return tagHistory->selectorText(str.toString() + rightSide); |
729 } | 733 } |
730 } | 734 } |
731 return str.toString() + rightSide; | 735 return str.toString() + rightSide; |
732 } | 736 } |
733 | 737 |
734 void CSSSelector::setAttribute(const QualifiedName& value, AttributeMatchType ma tchType) | 738 void CSSSelector::setAttribute(const QualifiedName& value, AttributeMatchType ma tchType) |
735 { | 739 { |
736 createRareData(); | 740 createRareData(); |
737 m_data.m_rareData->m_attribute = value; | 741 m_data.m_rareData->m_attribute = value; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
788 case CSSSelector::PseudoFirstChild: | 792 case CSSSelector::PseudoFirstChild: |
789 case CSSSelector::PseudoLastChild: | 793 case CSSSelector::PseudoLastChild: |
790 case CSSSelector::PseudoFirstOfType: | 794 case CSSSelector::PseudoFirstOfType: |
791 case CSSSelector::PseudoLastOfType: | 795 case CSSSelector::PseudoLastOfType: |
792 case CSSSelector::PseudoOnlyOfType: | 796 case CSSSelector::PseudoOnlyOfType: |
793 case CSSSelector::PseudoHost: | 797 case CSSSelector::PseudoHost: |
794 case CSSSelector::PseudoHostContext: | 798 case CSSSelector::PseudoHostContext: |
795 case CSSSelector::PseudoNot: | 799 case CSSSelector::PseudoNot: |
796 case CSSSelector::PseudoSpatialNavigationFocus: | 800 case CSSSelector::PseudoSpatialNavigationFocus: |
797 case CSSSelector::PseudoListBox: | 801 case CSSSelector::PseudoListBox: |
802 case CSSSelector::PseudoSlotted: | |
rune
2016/01/15 11:01:16
This method is used for validating selectors in <c
kochi
2016/01/19 07:25:56
Good catch.
It seems I mistakenly added this line
| |
798 return true; | 803 return true; |
799 default: | 804 default: |
800 return false; | 805 return false; |
801 } | 806 } |
802 } | 807 } |
803 | 808 |
804 bool CSSSelector::isCompound() const | 809 bool CSSSelector::isCompound() const |
805 { | 810 { |
806 if (!validateSubSelector(this)) | 811 if (!validateSubSelector(this)) |
807 return false; | 812 return false; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
899 if (count < nthBValue()) | 904 if (count < nthBValue()) |
900 return false; | 905 return false; |
901 return (count - nthBValue()) % nthAValue() == 0; | 906 return (count - nthBValue()) % nthAValue() == 0; |
902 } | 907 } |
903 if (count > nthBValue()) | 908 if (count > nthBValue()) |
904 return false; | 909 return false; |
905 return (nthBValue() - count) % (-nthAValue()) == 0; | 910 return (nthBValue() - count) % (-nthAValue()) == 0; |
906 } | 911 } |
907 | 912 |
908 } // namespace blink | 913 } // namespace blink |
OLD | NEW |