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

Side by Side Diff: Source/core/css/CSSSelector.cpp

Issue 210813003: Rename :ancestor to :host-context. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Patch for landing Created 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/css/CSSSelector.h ('k') | Source/core/css/CSSTokenizer-in.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 94
95 inline unsigned CSSSelector::specificityForOneSelector() const 95 inline unsigned CSSSelector::specificityForOneSelector() const
96 { 96 {
97 // FIXME: Pseudo-elements and pseudo-classes do not have the same specificit y. This function 97 // FIXME: Pseudo-elements and pseudo-classes do not have the same specificit y. This function
98 // isn't quite correct. 98 // isn't quite correct.
99 switch (m_match) { 99 switch (m_match) {
100 case Id: 100 case Id:
101 return 0x10000; 101 return 0x10000;
102 case PseudoClass: 102 case PseudoClass:
103 if (pseudoType() == PseudoHost || pseudoType() == PseudoAncestor) 103 if (pseudoType() == PseudoHost || pseudoType() == PseudoHostContext)
104 return 0; 104 return 0;
105 // fall through. 105 // fall through.
106 case Exact: 106 case Exact:
107 case Class: 107 case Class:
108 case Set: 108 case Set:
109 case List: 109 case List:
110 case Hyphen: 110 case Hyphen:
111 case PseudoElement: 111 case PseudoElement:
112 case Contain: 112 case Contain:
113 case Begin: 113 case Begin:
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 case PseudoOutOfRange: 247 case PseudoOutOfRange:
248 case PseudoUserAgentCustomElement: 248 case PseudoUserAgentCustomElement:
249 case PseudoWebKitCustomElement: 249 case PseudoWebKitCustomElement:
250 case PseudoCue: 250 case PseudoCue:
251 case PseudoFutureCue: 251 case PseudoFutureCue:
252 case PseudoPastCue: 252 case PseudoPastCue:
253 case PseudoDistributed: 253 case PseudoDistributed:
254 case PseudoUnresolved: 254 case PseudoUnresolved:
255 case PseudoContent: 255 case PseudoContent:
256 case PseudoHost: 256 case PseudoHost:
257 case PseudoAncestor: 257 case PseudoHostContext:
258 case PseudoFullScreen: 258 case PseudoFullScreen:
259 case PseudoFullScreenDocument: 259 case PseudoFullScreenDocument:
260 case PseudoFullScreenAncestor: 260 case PseudoFullScreenAncestor:
261 return NOPSEUDO; 261 return NOPSEUDO;
262 case PseudoNotParsed: 262 case PseudoNotParsed:
263 ASSERT_NOT_REACHED(); 263 ASSERT_NOT_REACHED();
264 return NOPSEUDO; 264 return NOPSEUDO;
265 } 265 }
266 266
267 ASSERT_NOT_REACHED(); 267 ASSERT_NOT_REACHED();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 {"cue", CSSSelector::PseudoWebKitCustomElement}, 347 {"cue", CSSSelector::PseudoWebKitCustomElement},
348 {"future", CSSSelector::PseudoFutureCue}, 348 {"future", CSSSelector::PseudoFutureCue},
349 {"past", CSSSelector::PseudoPastCue}, 349 {"past", CSSSelector::PseudoPastCue},
350 {"-webkit-distributed(", CSSSelector::PseudoDistributed}, 350 {"-webkit-distributed(", CSSSelector::PseudoDistributed},
351 {"in-range", CSSSelector::PseudoInRange}, 351 {"in-range", CSSSelector::PseudoInRange},
352 {"out-of-range", CSSSelector::PseudoOutOfRange}, 352 {"out-of-range", CSSSelector::PseudoOutOfRange},
353 {"scope", CSSSelector::PseudoScope}, 353 {"scope", CSSSelector::PseudoScope},
354 {"unresolved", CSSSelector::PseudoUnresolved}, 354 {"unresolved", CSSSelector::PseudoUnresolved},
355 {"host", CSSSelector::PseudoHost}, 355 {"host", CSSSelector::PseudoHost},
356 {"host(", CSSSelector::PseudoHost}, 356 {"host(", CSSSelector::PseudoHost},
357 {"ancestor", CSSSelector::PseudoAncestor}, 357 {"host-context", CSSSelector::PseudoHostContext},
358 {"ancestor(", CSSSelector::PseudoAncestor}, 358 {"host-context(", CSSSelector::PseudoHostContext},
359 {"content", CSSSelector::PseudoContent}, 359 {"content", CSSSelector::PseudoContent},
360 }; 360 };
361 361
362 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap() 362 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap()
363 { 363 {
364 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0; 364 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0;
365 if (!nameToPseudoType) { 365 if (!nameToPseudoType) {
366 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>; 366 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>;
367 367
368 size_t pseudoCount = WTF_ARRAY_LENGTH(pseudoTypeMap); 368 size_t pseudoCount = WTF_ARRAY_LENGTH(pseudoTypeMap);
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 case PseudoNoButton: 513 case PseudoNoButton:
514 case PseudoNotParsed: 514 case PseudoNotParsed:
515 case PseudoFullScreen: 515 case PseudoFullScreen:
516 case PseudoFullScreenDocument: 516 case PseudoFullScreenDocument:
517 case PseudoFullScreenAncestor: 517 case PseudoFullScreenAncestor:
518 case PseudoInRange: 518 case PseudoInRange:
519 case PseudoOutOfRange: 519 case PseudoOutOfRange:
520 case PseudoFutureCue: 520 case PseudoFutureCue:
521 case PseudoPastCue: 521 case PseudoPastCue:
522 case PseudoHost: 522 case PseudoHost:
523 case PseudoAncestor: 523 case PseudoHostContext:
524 case PseudoUnresolved: 524 case PseudoUnresolved:
525 break; 525 break;
526 case PseudoFirstPage: 526 case PseudoFirstPage:
527 case PseudoLeftPage: 527 case PseudoLeftPage:
528 case PseudoRightPage: 528 case PseudoRightPage:
529 isPagePseudoClass = true; 529 isPagePseudoClass = true;
530 break; 530 break;
531 } 531 }
532 532
533 bool matchPagePseudoClass = (m_match == PagePseudoClass); 533 bool matchPagePseudoClass = (m_match == PagePseudoClass);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 const CSSSelector* firstSubSelector = cs->selectorList()->first( ); 614 const CSSSelector* firstSubSelector = cs->selectorList()->first( );
615 for (const CSSSelector* subSelector = firstSubSelector; subSelec tor; subSelector = CSSSelectorList::next(*subSelector)) { 615 for (const CSSSelector* subSelector = firstSubSelector; subSelec tor; subSelector = CSSSelectorList::next(*subSelector)) {
616 if (subSelector != firstSubSelector) 616 if (subSelector != firstSubSelector)
617 str.append(','); 617 str.append(',');
618 str.append(subSelector->selectorText()); 618 str.append(subSelector->selectorText());
619 } 619 }
620 str.append(')'); 620 str.append(')');
621 break; 621 break;
622 } 622 }
623 case PseudoHost: 623 case PseudoHost:
624 case PseudoAncestor: { 624 case PseudoHostContext: {
625 if (cs->selectorList()) { 625 if (cs->selectorList()) {
626 const CSSSelector* firstSubSelector = cs->selectorList()->fi rst(); 626 const CSSSelector* firstSubSelector = cs->selectorList()->fi rst();
627 for (const CSSSelector* subSelector = firstSubSelector; subS elector; subSelector = CSSSelectorList::next(*subSelector)) { 627 for (const CSSSelector* subSelector = firstSubSelector; subS elector; subSelector = CSSSelectorList::next(*subSelector)) {
628 if (subSelector != firstSubSelector) 628 if (subSelector != firstSubSelector)
629 str.append(','); 629 str.append(',');
630 str.append(subSelector->selectorText()); 630 str.append(subSelector->selectorText());
631 } 631 }
632 str.append(')'); 632 str.append(')');
633 } 633 }
634 break; 634 break;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 case CSSSelector::PseudoNthChild: 766 case CSSSelector::PseudoNthChild:
767 case CSSSelector::PseudoNthLastChild: 767 case CSSSelector::PseudoNthLastChild:
768 case CSSSelector::PseudoNthOfType: 768 case CSSSelector::PseudoNthOfType:
769 case CSSSelector::PseudoNthLastOfType: 769 case CSSSelector::PseudoNthLastOfType:
770 case CSSSelector::PseudoFirstChild: 770 case CSSSelector::PseudoFirstChild:
771 case CSSSelector::PseudoLastChild: 771 case CSSSelector::PseudoLastChild:
772 case CSSSelector::PseudoFirstOfType: 772 case CSSSelector::PseudoFirstOfType:
773 case CSSSelector::PseudoLastOfType: 773 case CSSSelector::PseudoLastOfType:
774 case CSSSelector::PseudoOnlyOfType: 774 case CSSSelector::PseudoOnlyOfType:
775 case CSSSelector::PseudoHost: 775 case CSSSelector::PseudoHost:
776 case CSSSelector::PseudoAncestor: 776 case CSSSelector::PseudoHostContext:
777 return true; 777 return true;
778 default: 778 default:
779 return false; 779 return false;
780 } 780 }
781 } 781 }
782 782
783 bool CSSSelector::isCompound() const 783 bool CSSSelector::isCompound() const
784 { 784 {
785 if (!validateSubSelector(this)) 785 if (!validateSubSelector(this))
786 return false; 786 return false;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 return false; 883 return false;
884 return (count - m_b) % m_a == 0; 884 return (count - m_b) % m_a == 0;
885 } else { 885 } else {
886 if (count > m_b) 886 if (count > m_b)
887 return false; 887 return false;
888 return (m_b - count) % (-m_a) == 0; 888 return (m_b - count) % (-m_a) == 0;
889 } 889 }
890 } 890 }
891 891
892 } // namespace WebCore 892 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/css/CSSSelector.h ('k') | Source/core/css/CSSTokenizer-in.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698