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

Side by Side Diff: sky/engine/core/dom/Document.cpp

Issue 834693007: Remove the remaining parts of ignorePendingStylesheets and placeholder styles. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Remove comment. Created 5 years, 11 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
« no previous file with comments | « sky/engine/core/dom/Document.h ('k') | sky/engine/core/dom/Element.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, 2011, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 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) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 { 234 {
235 DEFINE_STATIC_LOCAL(OwnPtr<WeakDocumentSet>, set, (adoptPtr(new WeakDocument Set()))); 235 DEFINE_STATIC_LOCAL(OwnPtr<WeakDocumentSet>, set, (adoptPtr(new WeakDocument Set())));
236 return *set; 236 return *set;
237 } 237 }
238 #endif 238 #endif
239 239
240 Document::Document(const DocumentInit& initializer, DocumentClassFlags documentC lasses) 240 Document::Document(const DocumentInit& initializer, DocumentClassFlags documentC lasses)
241 : ContainerNode(0, CreateDocument) 241 : ContainerNode(0, CreateDocument)
242 , TreeScope(*this) 242 , TreeScope(*this)
243 , m_module(nullptr) 243 , m_module(nullptr)
244 , m_hasNodesWithPlaceholderStyle(false)
245 , m_evaluateMediaQueriesOnStyleRecalc(false) 244 , m_evaluateMediaQueriesOnStyleRecalc(false)
246 , m_pendingSheetLayout(NoLayoutWithPendingSheets) 245 , m_pendingSheetLayout(NoLayoutWithPendingSheets)
247 , m_frame(initializer.frame()) 246 , m_frame(initializer.frame())
248 , m_domWindow(m_frame ? m_frame->domWindow() : 0) 247 , m_domWindow(m_frame ? m_frame->domWindow() : 0)
249 , m_importsController(initializer.importsController()) 248 , m_importsController(initializer.importsController())
250 , m_activeParserCount(0) 249 , m_activeParserCount(0)
251 , m_executeScriptsWaitingForResourcesTimer(this, &Document::executeScriptsWa itingForResourcesTimerFired) 250 , m_executeScriptsWaitingForResourcesTimer(this, &Document::executeScriptsWa itingForResourcesTimerFired)
252 , m_clearFocusedElementTimer(this, &Document::clearFocusedElementTimerFired) 251 , m_clearFocusedElementTimer(this, &Document::clearFocusedElementTimerFired)
253 , m_listenerTypes(0) 252 , m_listenerTypes(0)
254 , m_mutationObserverTypes(0) 253 , m_mutationObserverTypes(0)
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 1070
1072 if (styleChangeType() >= SubtreeStyleChange) 1071 if (styleChangeType() >= SubtreeStyleChange)
1073 change = Force; 1072 change = Force;
1074 1073
1075 // FIXME: Cannot access the ensureStyleResolver() before calling styleForDoc ument below because 1074 // FIXME: Cannot access the ensureStyleResolver() before calling styleForDoc ument below because
1076 // apparently the StyleResolver's constructor has side effects. We should fi x it. 1075 // apparently the StyleResolver's constructor has side effects. We should fi x it.
1077 // See printing/setPrinting.html, printing/width-overflow.html though they o nly fail on 1076 // See printing/setPrinting.html, printing/width-overflow.html though they o nly fail on
1078 // mac when accessing the resolver by what appears to be a viewport size dif ference. 1077 // mac when accessing the resolver by what appears to be a viewport size dif ference.
1079 1078
1080 if (change == Force) { 1079 if (change == Force) {
1081 m_hasNodesWithPlaceholderStyle = false;
1082 RefPtr<RenderStyle> documentStyle = StyleResolver::styleForDocument(*thi s); 1080 RefPtr<RenderStyle> documentStyle = StyleResolver::styleForDocument(*thi s);
1083 StyleRecalcChange localChange = RenderStyle::stylePropagationDiff(docume ntStyle.get(), renderView()->style()); 1081 StyleRecalcChange localChange = RenderStyle::stylePropagationDiff(docume ntStyle.get(), renderView()->style());
1084 if (localChange != NoChange) 1082 if (localChange != NoChange)
1085 renderView()->setStyle(documentStyle.release()); 1083 renderView()->setStyle(documentStyle.release());
1086 } 1084 }
1087 1085
1088 clearNeedsStyleRecalc(); 1086 clearNeedsStyleRecalc();
1089 1087
1090 // Uncomment to enable printing of statistics about style sharing and the ma tched property cache. 1088 // Uncomment to enable printing of statistics about style sharing and the ma tched property cache.
1091 // Optionally pass StyleResolver::ReportSlowStats to print numbers that requ ire crawling the 1089 // Optionally pass StyleResolver::ReportSlowStats to print numbers that requ ire crawling the
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 1166
1169 void Document::clearFocusedElementTimerFired(Timer<Document>*) 1167 void Document::clearFocusedElementTimerFired(Timer<Document>*)
1170 { 1168 {
1171 updateRenderTreeIfNeeded(); 1169 updateRenderTreeIfNeeded();
1172 m_clearFocusedElementTimer.stop(); 1170 m_clearFocusedElementTimer.stop();
1173 1171
1174 if (m_focusedElement && !m_focusedElement->isFocusable()) 1172 if (m_focusedElement && !m_focusedElement->isFocusable())
1175 m_focusedElement->blur(); 1173 m_focusedElement->blur();
1176 } 1174 }
1177 1175
1178 // FIXME: This is a bad idea and needs to be removed eventually.
1179 // Other browsers load stylesheets before they continue parsing the web page.
1180 // Since we don't, we can run JavaScript code that needs answers before the
1181 // stylesheets are loaded. Doing a layout ignoring the pending stylesheets
1182 // lets us get reasonable answers. The long term solution to this problem is
1183 // to instead suspend JavaScript execution.
1184 void Document::updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasks runPostLayoutTasks)
1185 {
1186 StyleEngine::IgnoringPendingStylesheet ignoring(m_styleEngine.get());
1187 updateLayout();
1188 if (runPostLayoutTasks == RunPostLayoutTasksSynchronously && view())
1189 view()->flushAnyPendingPostLayoutTasks();
1190 }
1191
1192 PassRefPtr<RenderStyle> Document::styleForElementIgnoringPendingStylesheets(Elem ent* element)
1193 {
1194 ASSERT_ARG(element, element->document() == this);
1195 StyleEngine::IgnoringPendingStylesheet ignoring(m_styleEngine.get());
1196 return ensureStyleResolver().styleForElement(element, element->parentNode() ? element->parentNode()->computedStyle() : 0);
1197 }
1198
1199 StyleResolver* Document::styleResolver() const 1176 StyleResolver* Document::styleResolver() const
1200 { 1177 {
1201 if (!isActive()) 1178 if (!isActive())
1202 return 0; 1179 return 0;
1203 return m_styleEngine->resolver(); 1180 return m_styleEngine->resolver();
1204 } 1181 }
1205 1182
1206 StyleResolver& Document::ensureStyleResolver() const 1183 StyleResolver& Document::ensureStyleResolver() const
1207 { 1184 {
1208 ASSERT(isActive()); 1185 ASSERT(isActive());
(...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after
2735 using namespace blink; 2712 using namespace blink;
2736 void showLiveDocumentInstances() 2713 void showLiveDocumentInstances()
2737 { 2714 {
2738 WeakDocumentSet& set = liveDocumentSet(); 2715 WeakDocumentSet& set = liveDocumentSet();
2739 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 2716 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
2740 for (WeakDocumentSet::const_iterator it = set.begin(); it != set.end(); ++it ) { 2717 for (WeakDocumentSet::const_iterator it = set.begin(); it != set.end(); ++it ) {
2741 fprintf(stderr, "- Document %p URL: %s\n", *it, (*it)->url().string().ut f8().data()); 2718 fprintf(stderr, "- Document %p URL: %s\n", *it, (*it)->url().string().ut f8().data());
2742 } 2719 }
2743 } 2720 }
2744 #endif 2721 #endif
OLDNEW
« no previous file with comments | « sky/engine/core/dom/Document.h ('k') | sky/engine/core/dom/Element.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698