OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. |
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
9 * Copyright (C) 2011 Google Inc. All rights reserved. | 9 * Copyright (C) 2011 Google Inc. All rights reserved. |
10 * | 10 * |
(...skipping 10 matching lines...) Expand all Loading... |
21 * You should have received a copy of the GNU Library General Public License | 21 * You should have received a copy of the GNU Library General Public License |
22 * along with this library; see the file COPYING.LIB. If not, write to | 22 * along with this library; see the file COPYING.LIB. If not, write to |
23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 * Boston, MA 02110-1301, USA. | 24 * Boston, MA 02110-1301, USA. |
25 * | 25 * |
26 */ | 26 */ |
27 | 27 |
28 #ifndef DocumentStyleSheetCollection_h | 28 #ifndef DocumentStyleSheetCollection_h |
29 #define DocumentStyleSheetCollection_h | 29 #define DocumentStyleSheetCollection_h |
30 | 30 |
| 31 #include "Document.h" |
31 #include <wtf/FastAllocBase.h> | 32 #include <wtf/FastAllocBase.h> |
32 #include <wtf/ListHashSet.h> | 33 #include <wtf/ListHashSet.h> |
33 #include <wtf/RefPtr.h> | 34 #include <wtf/RefPtr.h> |
34 #include <wtf/Vector.h> | 35 #include <wtf/Vector.h> |
35 #include <wtf/text/WTFString.h> | 36 #include <wtf/text/WTFString.h> |
36 | 37 |
37 namespace WebCore { | 38 namespace WebCore { |
38 | 39 |
39 class CSSStyleSheet; | 40 class CSSStyleSheet; |
40 class Document; | 41 class Document; |
(...skipping 25 matching lines...) Expand all Loading... |
66 void clearPageUserSheet(); | 67 void clearPageUserSheet(); |
67 void updatePageUserSheet(); | 68 void updatePageUserSheet(); |
68 void invalidateInjectedStyleSheetCache(); | 69 void invalidateInjectedStyleSheetCache(); |
69 void updateInjectedStyleSheetCache() const; | 70 void updateInjectedStyleSheetCache() const; |
70 | 71 |
71 void addAuthorSheet(PassRefPtr<StyleSheetContents> authorSheet); | 72 void addAuthorSheet(PassRefPtr<StyleSheetContents> authorSheet); |
72 void addUserSheet(PassRefPtr<StyleSheetContents> userSheet); | 73 void addUserSheet(PassRefPtr<StyleSheetContents> userSheet); |
73 | 74 |
74 bool needsUpdateActiveStylesheetsOnStyleRecalc() const { return m_needsUpdat
eActiveStylesheetsOnStyleRecalc; } | 75 bool needsUpdateActiveStylesheetsOnStyleRecalc() const { return m_needsUpdat
eActiveStylesheetsOnStyleRecalc; } |
75 | 76 |
76 enum UpdateFlag { FullUpdate, OptimizedUpdate }; | 77 bool updateActiveStyleSheets(StyleResolverUpdateMode); |
77 bool updateActiveStyleSheets(UpdateFlag); | |
78 | 78 |
79 String preferredStylesheetSetName() const { return m_preferredStylesheetSetN
ame; } | 79 String preferredStylesheetSetName() const { return m_preferredStylesheetSetN
ame; } |
80 String selectedStylesheetSetName() const { return m_selectedStylesheetSetNam
e; } | 80 String selectedStylesheetSetName() const { return m_selectedStylesheetSetNam
e; } |
81 void setPreferredStylesheetSetName(const String& name) { m_preferredStyleshe
etSetName = name; } | 81 void setPreferredStylesheetSetName(const String& name) { m_preferredStyleshe
etSetName = name; } |
82 void setSelectedStylesheetSetName(const String& name) { m_selectedStylesheet
SetName = name; } | 82 void setSelectedStylesheetSetName(const String& name) { m_selectedStylesheet
SetName = name; } |
83 | 83 |
84 void addPendingSheet() { m_pendingStylesheets++; } | 84 void addPendingSheet() { m_pendingStylesheets++; } |
85 enum RemovePendingSheetNotificationType { | 85 enum RemovePendingSheetNotificationType { |
86 RemovePendingSheetNotifyImmediately, | 86 RemovePendingSheetNotifyImmediately, |
87 RemovePendingSheetNotifyLater | 87 RemovePendingSheetNotifyLater |
(...skipping 14 matching lines...) Expand all Loading... |
102 | 102 |
103 void combineCSSFeatureFlags(); | 103 void combineCSSFeatureFlags(); |
104 void resetCSSFeatureFlags(); | 104 void resetCSSFeatureFlags(); |
105 | 105 |
106 void reportMemoryUsage(MemoryObjectInfo*) const; | 106 void reportMemoryUsage(MemoryObjectInfo*) const; |
107 | 107 |
108 private: | 108 private: |
109 DocumentStyleSheetCollection(Document*); | 109 DocumentStyleSheetCollection(Document*); |
110 | 110 |
111 void collectActiveStyleSheets(Vector<RefPtr<StyleSheet> >&); | 111 void collectActiveStyleSheets(Vector<RefPtr<StyleSheet> >&); |
112 enum StyleResolverUpdateType { | 112 |
113 Reconstruct, | 113 enum UpdateAction { Reconstruct, Reset, Append }; |
114 Reset, | 114 UpdateAction analyzeStyleSheetChange(StyleResolverUpdateMode, const Vector<R
efPtr<CSSStyleSheet> >& newStylesheets, bool& requiresFullStyleRecalc); |
115 Additive | |
116 }; | |
117 void analyzeStyleSheetChange(UpdateFlag, const Vector<RefPtr<CSSStyleSheet>
>& newStylesheets, StyleResolverUpdateType&, bool& requiresFullStyleRecalc); | |
118 | 115 |
119 Document* m_document; | 116 Document* m_document; |
120 | 117 |
121 Vector<RefPtr<StyleSheet> > m_styleSheetsForStyleSheetList; | 118 Vector<RefPtr<StyleSheet> > m_styleSheetsForStyleSheetList; |
122 Vector<RefPtr<CSSStyleSheet> > m_activeAuthorStyleSheets; | 119 Vector<RefPtr<CSSStyleSheet> > m_activeAuthorStyleSheets; |
123 | 120 |
124 // Track the number of currently loading top-level stylesheets needed for re
ndering. | 121 // Track the number of currently loading top-level stylesheets needed for re
ndering. |
125 // Sheets loaded using the @import directive are not included in this count. | 122 // Sheets loaded using the @import directive are not included in this count. |
126 // We use this count of pending sheets to detect when we can begin attaching | 123 // We use this count of pending sheets to detect when we can begin attaching |
127 // elements and when it is safe to execute scripts. | 124 // elements and when it is safe to execute scripts. |
(...skipping 23 matching lines...) Expand all Loading... |
151 bool m_usesFirstLetterRules; | 148 bool m_usesFirstLetterRules; |
152 bool m_usesBeforeAfterRules; | 149 bool m_usesBeforeAfterRules; |
153 bool m_usesBeforeAfterRulesOverride; | 150 bool m_usesBeforeAfterRulesOverride; |
154 bool m_usesRemUnits; | 151 bool m_usesRemUnits; |
155 }; | 152 }; |
156 | 153 |
157 } | 154 } |
158 | 155 |
159 #endif | 156 #endif |
160 | 157 |
OLD | NEW |