| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |