Index: Source/core/css/resolver/StyleResolver.h |
diff --git a/Source/core/css/resolver/StyleResolver.h b/Source/core/css/resolver/StyleResolver.h |
index 2a78cb7be7c4babb3ee4a4d7ecd6fcce08b3ac16..5d9ae8ebe4a90eed5355db76582b542602d0b903 100644 |
--- a/Source/core/css/resolver/StyleResolver.h |
+++ b/Source/core/css/resolver/StyleResolver.h |
@@ -36,6 +36,7 @@ |
#include "core/css/resolver/StyleBuilder.h" |
#include "core/css/resolver/StyleResolverState.h" |
#include "core/css/resolver/StyleResourceLoader.h" |
+#include "wtf/Deque.h" |
#include "wtf/HashMap.h" |
#include "wtf/HashSet.h" |
#include "wtf/RefPtr.h" |
@@ -85,6 +86,9 @@ enum RuleMatchingBehavior { |
MatchOnlyUserAgentRules, |
}; |
+const unsigned styleSharingListSize = 40; |
+typedef WTF::Deque<RefPtr<Element>, styleSharingListSize> StyleSharingList; |
+ |
#undef STYLE_STATS |
#ifdef STYLE_STATS |
@@ -273,6 +277,13 @@ public: |
const RuleFeatureSet& ruleFeatureSet() const { return m_features; } |
+ StyleSharingList& styleSharingList() { return m_styleSharingList; } |
+ |
+ bool supportsStyleSharing(Element*); |
+ |
+ void addToStyleSharingList(Element*); |
+ void clearStyleSharingList(); |
+ |
#ifdef STYLE_STATS |
ALWAYS_INLINE static StyleSharingStats& styleSharingStats() { return m_styleSharingStats; } |
#endif |
@@ -356,6 +367,8 @@ private: |
StyleResourceLoader m_styleResourceLoader; |
+ StyleSharingList m_styleSharingList; |
+ |
#ifdef STYLE_STATS |
static StyleSharingStats m_styleSharingStats; |
#endif |