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

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

Issue 2392343005: Reflow comments in core/css (Closed)
Patch Set: Revert clang-format Created 4 years, 2 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 /* 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
7 * reserved.
7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) 8 * Copyright (C) 2008 David Smith (catfish.man@gmail.com)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 9 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * 10 *
10 * This library is free software; you can redistribute it and/or 11 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Library General Public 12 * modify it under the terms of the GNU Library General Public
12 * License as published by the Free Software Foundation; either 13 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version. 14 * version 2 of the License, or (at your option) any later version.
14 * 15 *
15 * This library is distributed in the hope that it will be useful, 16 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 total |= classMask; 87 total |= classMask;
87 else if ((temp & elementMask) < (total & elementMask)) 88 else if ((temp & elementMask) < (total & elementMask))
88 total |= elementMask; 89 total |= elementMask;
89 else 90 else
90 total = temp; 91 total = temp;
91 } 92 }
92 return total; 93 return total;
93 } 94 }
94 95
95 inline unsigned CSSSelector::specificityForOneSelector() const { 96 inline unsigned CSSSelector::specificityForOneSelector() const {
96 // FIXME: Pseudo-elements and pseudo-classes do not have the same specificity. This function 97 // FIXME: Pseudo-elements and pseudo-classes do not have the same specificity.
97 // isn't quite correct. 98 // This function isn't quite correct.
98 // http://www.w3.org/TR/selectors/#specificity 99 // http://www.w3.org/TR/selectors/#specificity
99 switch (m_match) { 100 switch (m_match) {
100 case Id: 101 case Id:
101 return 0x010000; 102 return 0x010000;
102 case PseudoClass: 103 case PseudoClass:
103 switch (getPseudoType()) { 104 switch (getPseudoType()) {
104 case PseudoHost: 105 case PseudoHost:
105 case PseudoHostContext: 106 case PseudoHostContext:
106 // We dynamically compute the specificity of :host and :host-context 107 // We dynamically compute the specificity of :host and :host-context
107 // during matching. 108 // during matching.
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 392
392 class NameToPseudoCompare { 393 class NameToPseudoCompare {
393 public: 394 public:
394 NameToPseudoCompare(const AtomicString& key) : m_key(key) { 395 NameToPseudoCompare(const AtomicString& key) : m_key(key) {
395 ASSERT(m_key.is8Bit()); 396 ASSERT(m_key.is8Bit());
396 } 397 }
397 398
398 bool operator()(const NameToPseudoStruct& entry, const NameToPseudoStruct&) { 399 bool operator()(const NameToPseudoStruct& entry, const NameToPseudoStruct&) {
399 ASSERT(entry.string); 400 ASSERT(entry.string);
400 const char* key = reinterpret_cast<const char*>(m_key.characters8()); 401 const char* key = reinterpret_cast<const char*>(m_key.characters8());
401 // If strncmp returns 0, then either the keys are equal, or |m_key| sorts be fore |entry|. 402 // If strncmp returns 0, then either the keys are equal, or |m_key| sorts
403 // before |entry|.
402 return strncmp(entry.string, key, m_key.length()) < 0; 404 return strncmp(entry.string, key, m_key.length()) < 0;
403 } 405 }
404 406
405 private: 407 private:
406 const AtomicString& m_key; 408 const AtomicString& m_key;
407 }; 409 };
408 410
409 static CSSSelector::PseudoType nameToPseudoType(const AtomicString& name, 411 static CSSSelector::PseudoType nameToPseudoType(const AtomicString& name,
410 bool hasArguments) { 412 bool hasArguments) {
411 if (name.isNull() || !name.is8Bit()) 413 if (name.isNull() || !name.is8Bit())
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 prevSubSelector = subSelector; 861 prevSubSelector = subSelector;
860 subSelector = subSelector->tagHistory(); 862 subSelector = subSelector->tagHistory();
861 } 863 }
862 864
863 return true; 865 return true;
864 } 866 }
865 867
866 unsigned CSSSelector::computeLinkMatchType() const { 868 unsigned CSSSelector::computeLinkMatchType() const {
867 unsigned linkMatchType = MatchAll; 869 unsigned linkMatchType = MatchAll;
868 870
869 // Determine if this selector will match a link in visited, unvisited or any s tate, or never. 871 // Determine if this selector will match a link in visited, unvisited or any
872 // state, or never.
870 // :visited never matches other elements than the innermost link element. 873 // :visited never matches other elements than the innermost link element.
871 for (const CSSSelector* current = this; current; 874 for (const CSSSelector* current = this; current;
872 current = current->tagHistory()) { 875 current = current->tagHistory()) {
873 switch (current->getPseudoType()) { 876 switch (current->getPseudoType()) {
874 case PseudoNot: { 877 case PseudoNot: {
875 // :not(:visited) is equivalent to :link. Parser enforces that :not can' t nest. 878 // :not(:visited) is equivalent to :link. Parser enforces that :not
879 // can't nest.
876 ASSERT(current->selectorList()); 880 ASSERT(current->selectorList());
877 for (const CSSSelector* subSelector = current->selectorList()->first(); 881 for (const CSSSelector* subSelector = current->selectorList()->first();
878 subSelector; subSelector = subSelector->tagHistory()) { 882 subSelector; subSelector = subSelector->tagHistory()) {
879 PseudoType subType = subSelector->getPseudoType(); 883 PseudoType subType = subSelector->getPseudoType();
880 if (subType == PseudoVisited) 884 if (subType == PseudoVisited)
881 linkMatchType &= ~MatchVisited; 885 linkMatchType &= ~MatchVisited;
882 else if (subType == PseudoLink) 886 else if (subType == PseudoLink)
883 linkMatchType &= ~MatchLink; 887 linkMatchType &= ~MatchLink;
884 } 888 }
885 } break; 889 } break;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 if (count < nthBValue()) 1001 if (count < nthBValue())
998 return false; 1002 return false;
999 return (count - nthBValue()) % nthAValue() == 0; 1003 return (count - nthBValue()) % nthAValue() == 0;
1000 } 1004 }
1001 if (count > nthBValue()) 1005 if (count > nthBValue())
1002 return false; 1006 return false;
1003 return (nthBValue() - count) % (-nthAValue()) == 0; 1007 return (nthBValue() - count) % (-nthAValue()) == 0;
1004 } 1008 }
1005 1009
1006 } // namespace blink 1010 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSSelector.h ('k') | third_party/WebKit/Source/core/css/CSSSelectorList.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698