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

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

Issue 2566403003: Migrate WTF::Vector::append() to ::push_back() [part 3 of N] (Closed)
Patch Set: Created 4 years 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 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 descendantFeatures.insertionPointCrossing = true; 339 descendantFeatures.insertionPointCrossing = true;
340 if (lastInCompound.relationIsAffectedByPseudoContent()) 340 if (lastInCompound.relationIsAffectedByPseudoContent())
341 descendantFeatures.contentPseudoCrossing = true; 341 descendantFeatures.contentPseudoCrossing = true;
342 } 342 }
343 343
344 void RuleFeatureSet::extractInvalidationSetFeaturesFromSimpleSelector( 344 void RuleFeatureSet::extractInvalidationSetFeaturesFromSimpleSelector(
345 const CSSSelector& selector, 345 const CSSSelector& selector,
346 InvalidationSetFeatures& features) { 346 InvalidationSetFeatures& features) {
347 if (selector.match() == CSSSelector::Tag && 347 if (selector.match() == CSSSelector::Tag &&
348 selector.tagQName().localName() != starAtom) { 348 selector.tagQName().localName() != starAtom) {
349 features.tagNames.append(selector.tagQName().localName()); 349 features.tagNames.push_back(selector.tagQName().localName());
350 return; 350 return;
351 } 351 }
352 if (selector.match() == CSSSelector::Id) { 352 if (selector.match() == CSSSelector::Id) {
353 features.ids.append(selector.value()); 353 features.ids.push_back(selector.value());
354 return; 354 return;
355 } 355 }
356 if (selector.match() == CSSSelector::Class) { 356 if (selector.match() == CSSSelector::Class) {
357 features.classes.append(selector.value()); 357 features.classes.push_back(selector.value());
358 return; 358 return;
359 } 359 }
360 if (selector.isAttributeSelector()) { 360 if (selector.isAttributeSelector()) {
361 features.attributes.append(selector.attribute().localName()); 361 features.attributes.push_back(selector.attribute().localName());
362 return; 362 return;
363 } 363 }
364 switch (selector.getPseudoType()) { 364 switch (selector.getPseudoType()) {
365 case CSSSelector::PseudoWebKitCustomElement: 365 case CSSSelector::PseudoWebKitCustomElement:
366 case CSSSelector::PseudoBlinkInternalElement: 366 case CSSSelector::PseudoBlinkInternalElement:
367 features.customPseudoElement = true; 367 features.customPseudoElement = true;
368 return; 368 return;
369 case CSSSelector::PseudoBefore: 369 case CSSSelector::PseudoBefore:
370 case CSSSelector::PseudoAfter: 370 case CSSSelector::PseudoAfter:
371 features.hasBeforeOrAfter = true; 371 features.hasBeforeOrAfter = true;
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData( 768 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData(
769 const RuleData& ruleData) { 769 const RuleData& ruleData) {
770 FeatureMetadata metadata; 770 FeatureMetadata metadata;
771 if (collectFeaturesFromSelector(ruleData.selector(), metadata) == 771 if (collectFeaturesFromSelector(ruleData.selector(), metadata) ==
772 SelectorNeverMatches) 772 SelectorNeverMatches)
773 return SelectorNeverMatches; 773 return SelectorNeverMatches;
774 774
775 m_metadata.add(metadata); 775 m_metadata.add(metadata);
776 776
777 if (metadata.foundSiblingSelector) { 777 if (metadata.foundSiblingSelector) {
778 m_siblingRules.append(RuleFeature(ruleData.rule(), ruleData.selectorIndex(), 778 m_siblingRules.push_back(RuleFeature(ruleData.rule(),
779 ruleData.hasDocumentSecurityOrigin())); 779 ruleData.selectorIndex(),
780 ruleData.hasDocumentSecurityOrigin()));
780 } 781 }
781 if (ruleData.containsUncommonAttributeSelector()) { 782 if (ruleData.containsUncommonAttributeSelector()) {
782 m_uncommonAttributeRules.append( 783 m_uncommonAttributeRules.push_back(
783 RuleFeature(ruleData.rule(), ruleData.selectorIndex(), 784 RuleFeature(ruleData.rule(), ruleData.selectorIndex(),
784 ruleData.hasDocumentSecurityOrigin())); 785 ruleData.hasDocumentSecurityOrigin()));
785 } 786 }
786 787
787 updateInvalidationSets(ruleData); 788 updateInvalidationSets(ruleData);
788 return SelectorMayMatch; 789 return SelectorMayMatch;
789 } 790 }
790 791
791 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromSelector( 792 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromSelector(
792 const CSSSelector& selector, 793 const CSSSelector& selector,
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 if (it == m_classInvalidationSets.end()) 939 if (it == m_classInvalidationSets.end())
939 return; 940 return;
940 941
941 DescendantInvalidationSet* descendants; 942 DescendantInvalidationSet* descendants;
942 SiblingInvalidationSet* siblings; 943 SiblingInvalidationSet* siblings;
943 extractInvalidationSets(it->value.get(), descendants, siblings); 944 extractInvalidationSets(it->value.get(), descendants, siblings);
944 945
945 if (descendants) { 946 if (descendants) {
946 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, classChange, 947 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, classChange,
947 className); 948 className);
948 invalidationLists.descendants.append(descendants); 949 invalidationLists.descendants.push_back(descendants);
949 } 950 }
950 951
951 if (siblings) { 952 if (siblings) {
952 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, classChange, 953 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, classChange,
953 className); 954 className);
954 invalidationLists.siblings.append(siblings); 955 invalidationLists.siblings.push_back(siblings);
955 } 956 }
956 } 957 }
957 958
958 void RuleFeatureSet::collectSiblingInvalidationSetForClass( 959 void RuleFeatureSet::collectSiblingInvalidationSetForClass(
959 InvalidationLists& invalidationLists, 960 InvalidationLists& invalidationLists,
960 Element& element, 961 Element& element,
961 const AtomicString& className, 962 const AtomicString& className,
962 unsigned minDirectAdjacent) const { 963 unsigned minDirectAdjacent) const {
963 InvalidationSetMap::const_iterator it = 964 InvalidationSetMap::const_iterator it =
964 m_classInvalidationSets.find(className); 965 m_classInvalidationSets.find(className);
965 if (it == m_classInvalidationSets.end()) 966 if (it == m_classInvalidationSets.end())
966 return; 967 return;
967 968
968 InvalidationSet* invalidationSet = it->value.get(); 969 InvalidationSet* invalidationSet = it->value.get();
969 if (invalidationSet->type() == InvalidateDescendants) 970 if (invalidationSet->type() == InvalidateDescendants)
970 return; 971 return;
971 972
972 SiblingInvalidationSet* siblingSet = 973 SiblingInvalidationSet* siblingSet =
973 toSiblingInvalidationSet(invalidationSet); 974 toSiblingInvalidationSet(invalidationSet);
974 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent) 975 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent)
975 return; 976 return;
976 977
977 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, classChange, 978 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, classChange,
978 className); 979 className);
979 invalidationLists.siblings.append(siblingSet); 980 invalidationLists.siblings.push_back(siblingSet);
980 } 981 }
981 982
982 void RuleFeatureSet::collectInvalidationSetsForId( 983 void RuleFeatureSet::collectInvalidationSetsForId(
983 InvalidationLists& invalidationLists, 984 InvalidationLists& invalidationLists,
984 Element& element, 985 Element& element,
985 const AtomicString& id) const { 986 const AtomicString& id) const {
986 InvalidationSetMap::const_iterator it = m_idInvalidationSets.find(id); 987 InvalidationSetMap::const_iterator it = m_idInvalidationSets.find(id);
987 if (it == m_idInvalidationSets.end()) 988 if (it == m_idInvalidationSets.end())
988 return; 989 return;
989 990
990 DescendantInvalidationSet* descendants; 991 DescendantInvalidationSet* descendants;
991 SiblingInvalidationSet* siblings; 992 SiblingInvalidationSet* siblings;
992 extractInvalidationSets(it->value.get(), descendants, siblings); 993 extractInvalidationSets(it->value.get(), descendants, siblings);
993 994
994 if (descendants) { 995 if (descendants) {
995 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, idChange, id); 996 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, idChange, id);
996 invalidationLists.descendants.append(descendants); 997 invalidationLists.descendants.push_back(descendants);
997 } 998 }
998 999
999 if (siblings) { 1000 if (siblings) {
1000 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, idChange, id); 1001 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, idChange, id);
1001 invalidationLists.siblings.append(siblings); 1002 invalidationLists.siblings.push_back(siblings);
1002 } 1003 }
1003 } 1004 }
1004 1005
1005 void RuleFeatureSet::collectSiblingInvalidationSetForId( 1006 void RuleFeatureSet::collectSiblingInvalidationSetForId(
1006 InvalidationLists& invalidationLists, 1007 InvalidationLists& invalidationLists,
1007 Element& element, 1008 Element& element,
1008 const AtomicString& id, 1009 const AtomicString& id,
1009 unsigned minDirectAdjacent) const { 1010 unsigned minDirectAdjacent) const {
1010 InvalidationSetMap::const_iterator it = m_idInvalidationSets.find(id); 1011 InvalidationSetMap::const_iterator it = m_idInvalidationSets.find(id);
1011 if (it == m_idInvalidationSets.end()) 1012 if (it == m_idInvalidationSets.end())
1012 return; 1013 return;
1013 1014
1014 InvalidationSet* invalidationSet = it->value.get(); 1015 InvalidationSet* invalidationSet = it->value.get();
1015 if (invalidationSet->type() == InvalidateDescendants) 1016 if (invalidationSet->type() == InvalidateDescendants)
1016 return; 1017 return;
1017 1018
1018 SiblingInvalidationSet* siblingSet = 1019 SiblingInvalidationSet* siblingSet =
1019 toSiblingInvalidationSet(invalidationSet); 1020 toSiblingInvalidationSet(invalidationSet);
1020 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent) 1021 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent)
1021 return; 1022 return;
1022 1023
1023 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, idChange, id); 1024 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, idChange, id);
1024 invalidationLists.siblings.append(siblingSet); 1025 invalidationLists.siblings.push_back(siblingSet);
1025 } 1026 }
1026 1027
1027 void RuleFeatureSet::collectInvalidationSetsForAttribute( 1028 void RuleFeatureSet::collectInvalidationSetsForAttribute(
1028 InvalidationLists& invalidationLists, 1029 InvalidationLists& invalidationLists,
1029 Element& element, 1030 Element& element,
1030 const QualifiedName& attributeName) const { 1031 const QualifiedName& attributeName) const {
1031 InvalidationSetMap::const_iterator it = 1032 InvalidationSetMap::const_iterator it =
1032 m_attributeInvalidationSets.find(attributeName.localName()); 1033 m_attributeInvalidationSets.find(attributeName.localName());
1033 if (it == m_attributeInvalidationSets.end()) 1034 if (it == m_attributeInvalidationSets.end())
1034 return; 1035 return;
1035 1036
1036 DescendantInvalidationSet* descendants; 1037 DescendantInvalidationSet* descendants;
1037 SiblingInvalidationSet* siblings; 1038 SiblingInvalidationSet* siblings;
1038 extractInvalidationSets(it->value.get(), descendants, siblings); 1039 extractInvalidationSets(it->value.get(), descendants, siblings);
1039 1040
1040 if (descendants) { 1041 if (descendants) {
1041 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, attributeChange, 1042 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, attributeChange,
1042 attributeName); 1043 attributeName);
1043 invalidationLists.descendants.append(descendants); 1044 invalidationLists.descendants.push_back(descendants);
1044 } 1045 }
1045 1046
1046 if (siblings) { 1047 if (siblings) {
1047 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, attributeChange, 1048 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, attributeChange,
1048 attributeName); 1049 attributeName);
1049 invalidationLists.siblings.append(siblings); 1050 invalidationLists.siblings.push_back(siblings);
1050 } 1051 }
1051 } 1052 }
1052 1053
1053 void RuleFeatureSet::collectSiblingInvalidationSetForAttribute( 1054 void RuleFeatureSet::collectSiblingInvalidationSetForAttribute(
1054 InvalidationLists& invalidationLists, 1055 InvalidationLists& invalidationLists,
1055 Element& element, 1056 Element& element,
1056 const QualifiedName& attributeName, 1057 const QualifiedName& attributeName,
1057 unsigned minDirectAdjacent) const { 1058 unsigned minDirectAdjacent) const {
1058 InvalidationSetMap::const_iterator it = 1059 InvalidationSetMap::const_iterator it =
1059 m_attributeInvalidationSets.find(attributeName.localName()); 1060 m_attributeInvalidationSets.find(attributeName.localName());
1060 if (it == m_attributeInvalidationSets.end()) 1061 if (it == m_attributeInvalidationSets.end())
1061 return; 1062 return;
1062 1063
1063 InvalidationSet* invalidationSet = it->value.get(); 1064 InvalidationSet* invalidationSet = it->value.get();
1064 if (invalidationSet->type() == InvalidateDescendants) 1065 if (invalidationSet->type() == InvalidateDescendants)
1065 return; 1066 return;
1066 1067
1067 SiblingInvalidationSet* siblingSet = 1068 SiblingInvalidationSet* siblingSet =
1068 toSiblingInvalidationSet(invalidationSet); 1069 toSiblingInvalidationSet(invalidationSet);
1069 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent) 1070 if (siblingSet->maxDirectAdjacentSelectors() < minDirectAdjacent)
1070 return; 1071 return;
1071 1072
1072 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, attributeChange, 1073 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblingSet, attributeChange,
1073 attributeName); 1074 attributeName);
1074 invalidationLists.siblings.append(siblingSet); 1075 invalidationLists.siblings.push_back(siblingSet);
1075 } 1076 }
1076 1077
1077 void RuleFeatureSet::collectInvalidationSetsForPseudoClass( 1078 void RuleFeatureSet::collectInvalidationSetsForPseudoClass(
1078 InvalidationLists& invalidationLists, 1079 InvalidationLists& invalidationLists,
1079 Element& element, 1080 Element& element,
1080 CSSSelector::PseudoType pseudo) const { 1081 CSSSelector::PseudoType pseudo) const {
1081 PseudoTypeInvalidationSetMap::const_iterator it = 1082 PseudoTypeInvalidationSetMap::const_iterator it =
1082 m_pseudoInvalidationSets.find(pseudo); 1083 m_pseudoInvalidationSets.find(pseudo);
1083 if (it == m_pseudoInvalidationSets.end()) 1084 if (it == m_pseudoInvalidationSets.end())
1084 return; 1085 return;
1085 1086
1086 DescendantInvalidationSet* descendants; 1087 DescendantInvalidationSet* descendants;
1087 SiblingInvalidationSet* siblings; 1088 SiblingInvalidationSet* siblings;
1088 extractInvalidationSets(it->value.get(), descendants, siblings); 1089 extractInvalidationSets(it->value.get(), descendants, siblings);
1089 1090
1090 if (descendants) { 1091 if (descendants) {
1091 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, pseudoChange, 1092 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *descendants, pseudoChange,
1092 pseudo); 1093 pseudo);
1093 invalidationLists.descendants.append(descendants); 1094 invalidationLists.descendants.push_back(descendants);
1094 } 1095 }
1095 1096
1096 if (siblings) { 1097 if (siblings) {
1097 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, pseudoChange, pseudo); 1098 TRACE_SCHEDULE_STYLE_INVALIDATION(element, *siblings, pseudoChange, pseudo);
1098 invalidationLists.siblings.append(siblings); 1099 invalidationLists.siblings.push_back(siblings);
1099 } 1100 }
1100 } 1101 }
1101 1102
1102 void RuleFeatureSet::collectUniversalSiblingInvalidationSet( 1103 void RuleFeatureSet::collectUniversalSiblingInvalidationSet(
1103 InvalidationLists& invalidationLists, 1104 InvalidationLists& invalidationLists,
1104 unsigned minDirectAdjacent) const { 1105 unsigned minDirectAdjacent) const {
1105 if (m_universalSiblingInvalidationSet && 1106 if (m_universalSiblingInvalidationSet &&
1106 m_universalSiblingInvalidationSet->maxDirectAdjacentSelectors() >= 1107 m_universalSiblingInvalidationSet->maxDirectAdjacentSelectors() >=
1107 minDirectAdjacent) 1108 minDirectAdjacent)
1108 invalidationLists.siblings.append(m_universalSiblingInvalidationSet); 1109 invalidationLists.siblings.push_back(m_universalSiblingInvalidationSet);
1109 } 1110 }
1110 1111
1111 SiblingInvalidationSet& 1112 SiblingInvalidationSet&
1112 RuleFeatureSet::ensureUniversalSiblingInvalidationSet() { 1113 RuleFeatureSet::ensureUniversalSiblingInvalidationSet() {
1113 if (!m_universalSiblingInvalidationSet) 1114 if (!m_universalSiblingInvalidationSet)
1114 m_universalSiblingInvalidationSet = SiblingInvalidationSet::create(nullptr); 1115 m_universalSiblingInvalidationSet = SiblingInvalidationSet::create(nullptr);
1115 return *m_universalSiblingInvalidationSet; 1116 return *m_universalSiblingInvalidationSet;
1116 } 1117 }
1117 1118
1118 void RuleFeatureSet::collectNthInvalidationSet( 1119 void RuleFeatureSet::collectNthInvalidationSet(
1119 InvalidationLists& invalidationLists) const { 1120 InvalidationLists& invalidationLists) const {
1120 if (m_nthInvalidationSet) 1121 if (m_nthInvalidationSet)
1121 invalidationLists.descendants.append(m_nthInvalidationSet); 1122 invalidationLists.descendants.push_back(m_nthInvalidationSet);
1122 } 1123 }
1123 1124
1124 DescendantInvalidationSet& RuleFeatureSet::ensureNthInvalidationSet() { 1125 DescendantInvalidationSet& RuleFeatureSet::ensureNthInvalidationSet() {
1125 if (!m_nthInvalidationSet) 1126 if (!m_nthInvalidationSet)
1126 m_nthInvalidationSet = DescendantInvalidationSet::create(); 1127 m_nthInvalidationSet = DescendantInvalidationSet::create();
1127 return *m_nthInvalidationSet; 1128 return *m_nthInvalidationSet;
1128 } 1129 }
1129 1130
1130 void RuleFeatureSet::addFeaturesToUniversalSiblingInvalidationSet( 1131 void RuleFeatureSet::addFeaturesToUniversalSiblingInvalidationSet(
1131 const InvalidationSetFeatures& siblingFeatures, 1132 const InvalidationSetFeatures& siblingFeatures,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() || 1173 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() ||
1173 !tagNames.isEmpty() || customPseudoElement; 1174 !tagNames.isEmpty() || customPseudoElement;
1174 } 1175 }
1175 1176
1176 bool RuleFeatureSet::InvalidationSetFeatures::hasTagIdClassOrAttribute() const { 1177 bool RuleFeatureSet::InvalidationSetFeatures::hasTagIdClassOrAttribute() const {
1177 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() || 1178 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() ||
1178 !tagNames.isEmpty(); 1179 !tagNames.isEmpty();
1179 } 1180 }
1180 1181
1181 } // namespace blink 1182 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/PageRuleCollector.cpp ('k') | third_party/WebKit/Source/core/css/RuleSet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698