| Index: Source/core/css/invalidation/StyleInvalidator.cpp
|
| diff --git a/Source/core/css/invalidation/StyleInvalidator.cpp b/Source/core/css/invalidation/StyleInvalidator.cpp
|
| index 710993a51aa685350679ffb4a04e75f74d696234..345e57b451589be9c021086d3cb3a7572d75a7ed 100644
|
| --- a/Source/core/css/invalidation/StyleInvalidator.cpp
|
| +++ b/Source/core/css/invalidation/StyleInvalidator.cpp
|
| @@ -35,18 +35,24 @@ StyleInvalidator::StyleInvalidator(Document& document)
|
| void StyleInvalidator::RecursionData::pushInvalidationSet(const DescendantInvalidationSet& invalidationSet)
|
| {
|
| invalidationSet.getClasses(m_invalidationClasses);
|
| + invalidationSet.getAttributes(m_invalidationAttributes);
|
| m_foundInvalidationSet = true;
|
| }
|
|
|
| bool StyleInvalidator::RecursionData::matchesCurrentInvalidationSets(Element& element)
|
| {
|
| - if (!element.hasClass())
|
| - return false;
|
| -
|
| - const SpaceSplitString& classNames = element.classNames();
|
| - for (Vector<AtomicString>::const_iterator it = m_invalidationClasses.begin(); it != m_invalidationClasses.end(); ++it) {
|
| - if (classNames.contains(*it))
|
| - return true;
|
| + if (element.hasClass()) {
|
| + const SpaceSplitString& classNames = element.classNames();
|
| + for (Vector<AtomicString>::const_iterator it = m_invalidationClasses.begin(); it != m_invalidationClasses.end(); ++it) {
|
| + if (classNames.contains(*it))
|
| + return true;
|
| + }
|
| + }
|
| + if (element.hasAttributes()) {
|
| + for (Vector<AtomicString>::const_iterator it = m_invalidationAttributes.begin(); it != m_invalidationAttributes.end(); ++it) {
|
| + if (element.hasAttribute(*it))
|
| + return true;
|
| + }
|
| }
|
|
|
| return false;
|
|
|