Element::removeShadowRoot() and setShadowRoot() should be moved into ShadowTree.
https://bugs.webkit.org/show_bug.cgi?id=78313
Reviewed by Hajime Morita.
.:
* Source/autotools/symbols.filter:
Source/WebCore:
This patch is for refactoring ShadowTree related code.
(1) Element::removeShadowRoot() and Element::setShadowRoot() are moved into ShadowTree.
(2) ShadowTree is now put on its own heap.
No new tests, no change in behavior.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::shadowTree):
(WebCore::Element::ensureShadowTree):
Ensure the existence of ShadowTree. This does not ensure ShadowRoot exists.
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
Makes ShadowTree on Heap.
(ElementRareData):
(WebCore::ElementRareData::~ElementRareData):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):
* dom/ShadowTree.cpp:
(WebCore::validateShadowRoot):
(WebCore):
(WebCore::ShadowTree::addShadowRoot):
(WebCore::ShadowTree::removeAllShadowRoots):
* dom/ShadowTree.h:
(ShadowTree):
* testing/Internals.cpp:
(WebCore::Internals::removeShadowRoot):
Source/WebKit2:
* win/WebKit2.def:
* win/WebKit2CFLite.def:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@109084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/dom/ElementRareData.h b/Source/WebCore/dom/ElementRareData.h
index 45d89d5a..11c82579 100644
--- a/Source/WebCore/dom/ElementRareData.h
+++ b/Source/WebCore/dom/ElementRareData.h
@@ -64,11 +64,11 @@
LayoutSize m_minimumSizeForResizing;
RefPtr<RenderStyle> m_computedStyle;
- ShadowTree m_shadowTree;
AtomicString m_shadowPseudoId;
OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
OwnPtr<ClassList> m_classList;
+ OwnPtr<ShadowTree> m_shadowTree;
bool m_styleAffectedByEmpty;
@@ -94,7 +94,7 @@
inline ElementRareData::~ElementRareData()
{
- ASSERT(!m_shadowTree.hasShadowRoot());
+ ASSERT(!m_shadowTree);
}
inline void ElementRareData::resetComputedStyle()