Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: third_party/WebKit/Source/core/dom/StyleEngine.h

Issue 1903803002: Do not block painting for in-body CSS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed merge conflict Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 18 matching lines...) Expand all
29 #define StyleEngine_h 29 #define StyleEngine_h
30 30
31 #include "core/CoreExport.h" 31 #include "core/CoreExport.h"
32 #include "core/css/CSSFontSelectorClient.h" 32 #include "core/css/CSSFontSelectorClient.h"
33 #include "core/css/invalidation/StyleInvalidator.h" 33 #include "core/css/invalidation/StyleInvalidator.h"
34 #include "core/css/resolver/StyleResolver.h" 34 #include "core/css/resolver/StyleResolver.h"
35 #include "core/css/resolver/StyleResolverStats.h" 35 #include "core/css/resolver/StyleResolverStats.h"
36 #include "core/dom/Document.h" 36 #include "core/dom/Document.h"
37 #include "core/dom/DocumentOrderedList.h" 37 #include "core/dom/DocumentOrderedList.h"
38 #include "core/dom/DocumentStyleSheetCollection.h" 38 #include "core/dom/DocumentStyleSheetCollection.h"
39 #include "core/dom/StyleEngineContext.h"
39 #include "platform/heap/Handle.h" 40 #include "platform/heap/Handle.h"
40 #include "wtf/Allocator.h" 41 #include "wtf/Allocator.h"
41 #include "wtf/ListHashSet.h" 42 #include "wtf/ListHashSet.h"
42 #include "wtf/TemporaryChange.h" 43 #include "wtf/TemporaryChange.h"
43 #include "wtf/Vector.h" 44 #include "wtf/Vector.h"
44 #include "wtf/text/WTFString.h" 45 #include "wtf/text/WTFString.h"
45 46
46 namespace blink { 47 namespace blink {
47 48
48 class CSSFontSelector; 49 class CSSFontSelector;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 void clearMediaQueryRuleSetStyleSheets(); 92 void clearMediaQueryRuleSetStyleSheets();
92 void updateStyleSheetsInImport(DocumentStyleSheetCollector& parentCollector) ; 93 void updateStyleSheetsInImport(DocumentStyleSheetCollector& parentCollector) ;
93 void updateActiveStyleSheets(StyleResolverUpdateMode); 94 void updateActiveStyleSheets(StyleResolverUpdateMode);
94 95
95 String preferredStylesheetSetName() const { return m_preferredStylesheetSetN ame; } 96 String preferredStylesheetSetName() const { return m_preferredStylesheetSetN ame; }
96 String selectedStylesheetSetName() const { return m_selectedStylesheetSetNam e; } 97 String selectedStylesheetSetName() const { return m_selectedStylesheetSetNam e; }
97 void setPreferredStylesheetSetNameIfNotSet(const String&); 98 void setPreferredStylesheetSetNameIfNotSet(const String&);
98 void setSelectedStylesheetSetName(const String&); 99 void setSelectedStylesheetSetName(const String&);
99 void setHttpDefaultStyle(const String&); 100 void setHttpDefaultStyle(const String&);
100 101
101 void addPendingSheet(); 102 void addPendingSheet(StyleEngineContext&);
102 void removePendingSheet(Node* styleSheetCandidateNode); 103 void removePendingSheet(Node* styleSheetCandidateNode, const StyleEngineCont ext&);
103 104
104 bool hasPendingSheets() const { return m_pendingStylesheets > 0; } 105 bool hasPendingSheets() const { return m_pendingStylesheets > 0; }
106 bool hasPendingRenderBlockingSheets() const { return m_pendingRenderBlocking Stylesheets > 0; }
105 bool haveStylesheetsLoaded() const { return !hasPendingSheets() || m_ignoreP endingStylesheets; } 107 bool haveStylesheetsLoaded() const { return !hasPendingSheets() || m_ignoreP endingStylesheets; }
108 bool haveRenderBlockingStylesheetsLoaded() const { return !hasPendingRenderB lockingSheets() || m_ignorePendingStylesheets; }
106 bool ignoringPendingStylesheets() const { return m_ignorePendingStylesheets; } 109 bool ignoringPendingStylesheets() const { return m_ignorePendingStylesheets; }
107 110
108 unsigned maxDirectAdjacentSelectors() const { return m_maxDirectAdjacentSele ctors; } 111 unsigned maxDirectAdjacentSelectors() const { return m_maxDirectAdjacentSele ctors; }
109 bool usesSiblingRules() const { return m_usesSiblingRules; } 112 bool usesSiblingRules() const { return m_usesSiblingRules; }
110 bool usesFirstLineRules() const { return m_usesFirstLineRules; } 113 bool usesFirstLineRules() const { return m_usesFirstLineRules; }
111 bool usesWindowInactiveSelector() const { return m_usesWindowInactiveSelecto r; } 114 bool usesWindowInactiveSelector() const { return m_usesWindowInactiveSelecto r; }
112 115
113 bool usesRemUnits() const { return m_usesRemUnits; } 116 bool usesRemUnits() const { return m_usesRemUnits; }
114 void setUsesRemUnit(bool b) { m_usesRemUnits = b; } 117 void setUsesRemUnit(bool b) { m_usesRemUnits = b; }
115 118
(...skipping 29 matching lines...) Expand all
145 148
146 void removeFontFaceRules(const HeapVector<Member<const StyleRuleFontFace>>&) ; 149 void removeFontFaceRules(const HeapVector<Member<const StyleRuleFontFace>>&) ;
147 void clearFontCache(); 150 void clearFontCache();
148 // updateGenericFontFamilySettings is used from WebSettingsImpl. 151 // updateGenericFontFamilySettings is used from WebSettingsImpl.
149 void updateGenericFontFamilySettings(); 152 void updateGenericFontFamilySettings();
150 153
151 void didDetach(); 154 void didDetach();
152 bool shouldClearResolver() const; 155 bool shouldClearResolver() const;
153 void resolverChanged(StyleResolverUpdateMode); 156 void resolverChanged(StyleResolverUpdateMode);
154 157
155 CSSStyleSheet* createSheet(Element*, const String& text, TextPosition startP osition); 158 CSSStyleSheet* createSheet(Element*, const String& text, TextPosition startP osition, StyleEngineContext&);
156 void removeSheet(StyleSheetContents*); 159 void removeSheet(StyleSheetContents*);
157 160
158 void collectScopedStyleFeaturesTo(RuleFeatureSet&) const; 161 void collectScopedStyleFeaturesTo(RuleFeatureSet&) const;
159 void ensureFullscreenUAStyle(); 162 void ensureFullscreenUAStyle();
160 163
161 void platformColorsChanged(); 164 void platformColorsChanged();
162 165
163 void classChangedForElement(const SpaceSplitString& changedClasses, Element& ); 166 void classChangedForElement(const SpaceSplitString& changedClasses, Element& );
164 void classChangedForElement(const SpaceSplitString& oldClasses, const SpaceS plitString& newClasses, Element&); 167 void classChangedForElement(const SpaceSplitString& oldClasses, const SpaceS plitString& newClasses, Element&);
165 void attributeChangedForElement(const QualifiedName& attributeName, Element& ); 168 void attributeChangedForElement(const QualifiedName& attributeName, Element& );
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 bool shouldSkipInvalidationFor(const Element&) const; 219 bool shouldSkipInvalidationFor(const Element&) const;
217 220
218 Member<Document> m_document; 221 Member<Document> m_document;
219 bool m_isMaster; 222 bool m_isMaster;
220 223
221 // Track the number of currently loading top-level stylesheets needed for la yout. 224 // Track the number of currently loading top-level stylesheets needed for la yout.
222 // Sheets loaded using the @import directive are not included in this count. 225 // Sheets loaded using the @import directive are not included in this count.
223 // We use this count of pending sheets to detect when we can begin attaching 226 // We use this count of pending sheets to detect when we can begin attaching
224 // elements and when it is safe to execute scripts. 227 // elements and when it is safe to execute scripts.
225 int m_pendingStylesheets = 0; 228 int m_pendingStylesheets = 0;
229 int m_pendingRenderBlockingStylesheets = 0;
226 230
227 HeapVector<Member<CSSStyleSheet>> m_injectedAuthorStyleSheets; 231 HeapVector<Member<CSSStyleSheet>> m_injectedAuthorStyleSheets;
228 232
229 Member<DocumentStyleSheetCollection> m_documentStyleSheetCollection; 233 Member<DocumentStyleSheetCollection> m_documentStyleSheetCollection;
230 234
231 typedef HeapHashMap<WeakMember<TreeScope>, Member<ShadowTreeStyleSheetCollec tion>> StyleSheetCollectionMap; 235 typedef HeapHashMap<WeakMember<TreeScope>, Member<ShadowTreeStyleSheetCollec tion>> StyleSheetCollectionMap;
232 StyleSheetCollectionMap m_styleSheetCollectionMap; 236 StyleSheetCollectionMap m_styleSheetCollectionMap;
233 237
234 bool m_documentScopeDirty = true; 238 bool m_documentScopeDirty = true;
235 UnorderedTreeScopeSet m_dirtyTreeScopes; 239 UnorderedTreeScopeSet m_dirtyTreeScopes;
(...skipping 21 matching lines...) Expand all
257 261
258 OwnPtr<StyleResolverStats> m_styleResolverStats; 262 OwnPtr<StyleResolverStats> m_styleResolverStats;
259 unsigned m_styleForElementCount = 0; 263 unsigned m_styleForElementCount = 0;
260 264
261 friend class StyleEngineTest; 265 friend class StyleEngineTest;
262 }; 266 };
263 267
264 } // namespace blink 268 } // namespace blink
265 269
266 #endif 270 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/StyleElement.cpp ('k') | third_party/WebKit/Source/core/dom/StyleEngine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698