WebKit Bugzilla
Attachment 359264 Details for
Bug 193488
: Add more assertions to find root cause for release assert hit in StyleResolver
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
tree-style-resolve-assertion.patch (text/plain), 3.75 KB, created by
Antti Koivisto
on 2019-01-16 06:16:04 PST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Antti Koivisto
Created:
2019-01-16 06:16:04 PST
Size:
3.75 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 240034) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,26 @@ >+2019-01-16 Antti Koivisto <antti@apple.com> >+ >+ 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 NOBODY (OOPS!). >+ >+ * 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 Zan Dobersek <zdobersek@igalia.com> > > [FreeType] Cache the zero-width space glyph in GlyphPage::fill() >Index: Source/WebCore/css/StyleResolver.cpp >=================================================================== >--- Source/WebCore/css/StyleResolver.cpp (revision 240032) >+++ Source/WebCore/css/StyleResolver.cpp (working copy) >@@ -267,6 +267,7 @@ void StyleResolver::addKeyframeStyle(Ref > > StyleResolver::~StyleResolver() > { >+ RELEASE_ASSERT(!m_document.isResolvingTreeStyle()); > RELEASE_ASSERT(!m_isDeleted); > m_isDeleted = true; > >Index: Source/WebCore/dom/Document.cpp >=================================================================== >--- Source/WebCore/dom/Document.cpp (revision 240032) >+++ Source/WebCore/dom/Document.cpp (working copy) >@@ -2326,6 +2326,12 @@ void Document::didClearStyleResolver() > m_userAgentShadowTreeStyleResolver = nullptr; > } > >+void Document::setIsResolvingTreeStyle(bool value) >+{ >+ RELEASE_ASSERT(value != m_isResolvingTreeStyle); >+ m_isResolvingTreeStyle = value; >+} >+ > void Document::createRenderTree() > { > ASSERT(!renderView()); >Index: Source/WebCore/dom/Document.h >=================================================================== >--- Source/WebCore/dom/Document.h (revision 240032) >+++ Source/WebCore/dom/Document.h (working copy) >@@ -1334,6 +1334,8 @@ public: > > 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 @@ private: > bool m_inStyleRecalc { false }; > bool m_closeAfterStyleRecalc { false }; > bool m_inRenderTreeUpdate { false }; >+ bool m_isResolvingTreeStyle { false }; > > bool m_gotoAnchorNeededAfterStylesheetsLoad { false }; > bool m_isDNSPrefetchEnabled { false }; >Index: Source/WebCore/style/StyleTreeResolver.cpp >=================================================================== >--- Source/WebCore/style/StyleTreeResolver.cpp (revision 240032) >+++ Source/WebCore/style/StyleTreeResolver.cpp (working copy) >@@ -67,6 +67,7 @@ TreeResolver::Scope::Scope(Document& doc > : 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(ShadowRoot& s > > TreeResolver::Scope::~Scope() > { >+ if (!shadowRoot) >+ styleResolver.document().setIsResolvingTreeStyle(false); >+ > styleResolver.setOverrideDocumentElementStyle(nullptr); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193488
: 359264