Title: [240037] trunk/Source/WebCore
- Revision
- 240037
- Author
- [email protected]
- Date
- 2019-01-16 08:03:31 -0800 (Wed, 16 Jan 2019)
Log Message
Add more assertions to find root cause for release assert hit in StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=193488
<rdar://problem/30983040>
Reviewed by Zalan Bujtas.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::~StyleResolver):
Release assert we are not resolving tree style.
* dom/Document.cpp:
(WebCore::Document::setIsResolvingTreeStyle):
* dom/Document.h:
(WebCore::Document::isResolvingTreeStyle const):
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):
Set isResolvingTreeStyle bit when we have a tree resolver scope.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (240036 => 240037)
--- trunk/Source/WebCore/ChangeLog 2019-01-16 15:23:24 UTC (rev 240036)
+++ trunk/Source/WebCore/ChangeLog 2019-01-16 16:03:31 UTC (rev 240037)
@@ -1,3 +1,26 @@
+2019-01-16 Antti Koivisto <[email protected]>
+
+ Add more assertions to find root cause for release assert hit in StyleResolver
+ https://bugs.webkit.org/show_bug.cgi?id=193488
+ <rdar://problem/30983040>
+
+ Reviewed by Zalan Bujtas.
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::~StyleResolver):
+
+ Release assert we are not resolving tree style.
+
+ * dom/Document.cpp:
+ (WebCore::Document::setIsResolvingTreeStyle):
+ * dom/Document.h:
+ (WebCore::Document::isResolvingTreeStyle const):
+ * style/StyleTreeResolver.cpp:
+ (WebCore::Style::TreeResolver::Scope::Scope):
+ (WebCore::Style::TreeResolver::Scope::~Scope):
+
+ Set isResolvingTreeStyle bit when we have a tree resolver scope.
+
2019-01-16 Zalan Bujtas <[email protected]>
[LFC][Out-of-flow] Set used vertical margin values when top/height/bottom are non-auto.
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (240036 => 240037)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2019-01-16 15:23:24 UTC (rev 240036)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2019-01-16 16:03:31 UTC (rev 240037)
@@ -267,6 +267,7 @@
StyleResolver::~StyleResolver()
{
+ RELEASE_ASSERT(!m_document.isResolvingTreeStyle());
RELEASE_ASSERT(!m_isDeleted);
m_isDeleted = true;
Modified: trunk/Source/WebCore/dom/Document.cpp (240036 => 240037)
--- trunk/Source/WebCore/dom/Document.cpp 2019-01-16 15:23:24 UTC (rev 240036)
+++ trunk/Source/WebCore/dom/Document.cpp 2019-01-16 16:03:31 UTC (rev 240037)
@@ -2326,6 +2326,12 @@
m_userAgentShadowTreeStyleResolver = nullptr;
}
+void Document::setIsResolvingTreeStyle(bool value)
+{
+ RELEASE_ASSERT(value != m_isResolvingTreeStyle);
+ m_isResolvingTreeStyle = value;
+}
+
void Document::createRenderTree()
{
ASSERT(!renderView());
Modified: trunk/Source/WebCore/dom/Document.h (240036 => 240037)
--- trunk/Source/WebCore/dom/Document.h 2019-01-16 15:23:24 UTC (rev 240036)
+++ trunk/Source/WebCore/dom/Document.h 2019-01-16 16:03:31 UTC (rev 240037)
@@ -1334,6 +1334,8 @@
bool inStyleRecalc() const { return m_inStyleRecalc; }
bool inRenderTreeUpdate() const { return m_inRenderTreeUpdate; }
+ bool isResolvingTreeStyle() const { return m_isResolvingTreeStyle; }
+ void setIsResolvingTreeStyle(bool);
void updateTextRenderer(Text&, unsigned offsetOfReplacedText, unsigned lengthOfReplacedText);
@@ -2017,6 +2019,7 @@
bool m_inStyleRecalc { false };
bool m_closeAfterStyleRecalc { false };
bool m_inRenderTreeUpdate { false };
+ bool m_isResolvingTreeStyle { false };
bool m_gotoAnchorNeededAfterStylesheetsLoad { false };
bool m_isDNSPrefetchEnabled { false };
Modified: trunk/Source/WebCore/style/StyleTreeResolver.cpp (240036 => 240037)
--- trunk/Source/WebCore/style/StyleTreeResolver.cpp 2019-01-16 15:23:24 UTC (rev 240036)
+++ trunk/Source/WebCore/style/StyleTreeResolver.cpp 2019-01-16 16:03:31 UTC (rev 240037)
@@ -67,6 +67,7 @@
: styleResolver(document.styleScope().resolver())
, sharingResolver(document, styleResolver.ruleSets(), selectorFilter)
{
+ document.setIsResolvingTreeStyle(true);
}
TreeResolver::Scope::Scope(ShadowRoot& shadowRoot, Scope& enclosingScope)
@@ -80,6 +81,9 @@
TreeResolver::Scope::~Scope()
{
+ if (!shadowRoot)
+ styleResolver.document().setIsResolvingTreeStyle(false);
+
styleResolver.setOverrideDocumentElementStyle(nullptr);
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes