Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index aae58dd8cb95fb376936800d57d8fddd5915a598..ff3da601998d2d10b0c702f91723b6b4764e7b80 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -454,7 +454,6 @@ Document::Document(const DocumentInit& initializer, DocumentClassFlags documentC |
, m_readyState(Complete) |
, m_bParsing(false) |
, m_hasPendingStyleRecalc(false) |
- , m_inStyleRecalc(false) |
, m_gotoAnchorNeededAfterStylesheetsLoad(false) |
, m_containsValidityStyleRules(false) |
, m_updateFocusAppearanceRestoresSelection(false) |
@@ -1606,7 +1605,7 @@ void Document::unscheduleStyleRecalc() |
bool Document::hasPendingForcedStyleRecalc() const |
{ |
- return m_hasPendingStyleRecalc && !m_inStyleRecalc && styleChangeType() >= SubtreeStyleChange; |
+ return m_hasPendingStyleRecalc && !inStyleRecalc() && styleChangeType() >= SubtreeStyleChange; |
} |
void Document::updateDistributionIfNeeded() |
@@ -1714,7 +1713,7 @@ void Document::recalcStyle(StyleRecalcChange change) |
if (!isActive() || !view()) |
return; |
- if (m_inStyleRecalc) |
+ if (inStyleRecalc()) |
return; |
TRACE_EVENT0("webkit", "Document::recalcStyle"); |
@@ -1743,7 +1742,7 @@ void Document::recalcStyle(StyleRecalcChange change) |
{ |
PostAttachCallbacks::SuspendScope suspendPostAttachCallbacks; |
RenderWidget::UpdateSuspendScope suspendWidgetHierarchyUpdates; |
- TemporaryChange<bool> changeInStyleRecalc(m_inStyleRecalc, true); |
+ m_lifecycle.advanceTo(DocumentLifecycle::InStyleRecalc); |
if (styleChangeType() >= SubtreeStyleChange) |
change = Force; |
@@ -1791,6 +1790,9 @@ void Document::recalcStyle(StyleRecalcChange change) |
m_styleEngine->resetCSSFeatureFlags(resolver.ensureRuleFeatureSet()); |
resolver.clearStyleSharingList(); |
} |
+ |
+ ASSERT(inStyleRecalc()); |
+ m_lifecycle.advanceTo(DocumentLifecycle::Clean); |
} |
InspectorInstrumentation::didRecalculateStyle(cookie); |
@@ -2064,7 +2066,7 @@ void Document::attach(const AttachContext& context) |
ContainerNode::attach(context); |
- m_lifecycle.advanceTo(DocumentLifecycle::Active); |
+ m_lifecycle.advanceTo(DocumentLifecycle::Clean); |
} |
void Document::detach(const AttachContext& context) |