CSS: Add a property cascading pass to style application.
[WebKit-https.git] / Source / WebCore / css / StyleResolver.h
index f57f956cf70de9322e95b62d26aa28a270c6c45d..2b4528323561abaf68390732050130b466050886 100644 (file)
@@ -350,12 +350,19 @@ private:
 
     bool fastRejectSelector(const RuleData&) const;
 
-    void applyMatchedProperties(const MatchResult&, const Element*);
+    enum ShouldUseMatchedPropertiesCache { DoNotUseMatchedPropertiesCache = 0, UseMatchedPropertiesCache };
+    void applyMatchedProperties(const MatchResult&, const Element*, ShouldUseMatchedPropertiesCache = UseMatchedPropertiesCache);
 
     enum StyleApplicationPass {
         HighPriorityProperties,
         LowPriorityProperties
     };
+
+    class CascadedProperties;
+
+    void applyCascadedProperties(CascadedProperties&, int firstProperty, int lastProperty);
+    void cascadeMatches(CascadedProperties&, const MatchResult&, bool important, int startIndex, int endIndex, bool inheritedOnly);
+
     template <StyleApplicationPass pass>
     void applyMatchedProperties(const MatchResult&, bool important, int startIndex, int endIndex, bool inheritedOnly);
     template <StyleApplicationPass pass>
@@ -499,6 +506,8 @@ public:
         Color m_backgroundColor;
     };
 
+    State& state() { return m_state; }
+
     static RenderStyle* styleNotYetAvailable() { return s_styleNotYetAvailable; }
 
     PassRefPtr<StyleImage> styleImage(CSSPropertyID, CSSValue*);