Index: third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h |
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h |
index 1d05a18a5d6a158c74d1be67d9d20e803c7f1849..40fdf9e62dddc71a75ea080fe552e12765f4f0da 100644 |
--- a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h |
+++ b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h |
@@ -31,14 +31,20 @@ |
#define TreeScopeStyleSheetCollection_h |
#include "core/CoreExport.h" |
+#include "core/dom/Document.h" |
#include "core/dom/DocumentOrderedList.h" |
#include "core/dom/StyleSheetCollection.h" |
#include "core/dom/TreeScope.h" |
+#include "wtf/HashMap.h" |
+#include "wtf/ListHashSet.h" |
+#include "wtf/Vector.h" |
+#include "wtf/text/WTFString.h" |
namespace blink { |
-class Document; |
class Node; |
+class StyleSheetContents; |
+class StyleRuleFontFace; |
class CORE_EXPORT TreeScopeStyleSheetCollection : public StyleSheetCollection { |
public: |
@@ -50,7 +56,7 @@ |
return !m_styleSheetCandidateNodes.isEmpty(); |
} |
- bool mediaQueryAffectingValueChanged(); |
+ void clearMediaQueryRuleSetStyleSheets(); |
virtual bool isShadowTreeStyleSheetCollection() const { return false; } |
@@ -62,13 +68,39 @@ |
Document& document() const { return treeScope().document(); } |
TreeScope& treeScope() const { return *m_treeScope; } |
- void applyActiveStyleSheetChanges(StyleSheetCollection&); |
+ enum StyleResolverUpdateType { Reconstruct, Reset, Additive }; |
- Member<TreeScope> m_treeScope; |
- DocumentOrderedList m_styleSheetCandidateNodes; |
+ class StyleSheetChange { |
+ STACK_ALLOCATED(); |
+ |
+ public: |
+ StyleResolverUpdateType styleResolverUpdateType; |
+ bool requiresFullStyleRecalc; |
+ HeapVector<Member<const StyleRuleFontFace>> fontFaceRulesToRemove; |
+ |
+ StyleSheetChange() |
+ : styleResolverUpdateType(Reconstruct), requiresFullStyleRecalc(true) {} |
+ }; |
+ |
+ void analyzeStyleSheetChange(StyleResolverUpdateMode, |
+ const HeapVector<Member<CSSStyleSheet>>&, |
+ StyleSheetChange&); |
private: |
+ static StyleResolverUpdateType compareStyleSheets( |
+ const HeapVector<Member<CSSStyleSheet>>& oldStyleSheets, |
+ const HeapVector<Member<CSSStyleSheet>>& newStylesheets, |
+ HeapVector<Member<StyleSheetContents>>& addedSheets); |
+ bool activeLoadingStyleSheetLoaded( |
+ const HeapVector<Member<CSSStyleSheet>>& newStyleSheets); |
+ |
friend class TreeScopeStyleSheetCollectionTest; |
+ |
+ protected: |
+ Member<TreeScope> m_treeScope; |
+ bool m_hadActiveLoadingStylesheet; |
+ |
+ DocumentOrderedList m_styleSheetCandidateNodes; |
}; |
} // namespace blink |