<style scoped>: Allow <style scoped> as a direct child of a ShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=77853
.:
numberOfScopedHTMLStyleChildren got moved from Element into Node.
Reviewed by Dimitri Glazkov.
* Source/autotools/symbols.filter:
Source/WebCore:
Moved registration code from Element to Node. updated Internals and build files accordingly.
Moved registration data members from ElementRareData to NodeRareData.
Forward willRemove() from host element into shadow DOM tree.
Reviewed by Dimitri Glazkov.
Test: fast/css/style-scoped/registering-shadowroot.html
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::willRemove):
* dom/Element.h:
(Element):
* dom/ElementRareData.h:
(ElementRareData):
(WebCore::ElementRareData::ElementRareData):
* dom/Node.cpp:
(WebCore):
(WebCore::Node::hasScopedHTMLStyleChild):
(WebCore::Node::numberOfScopedHTMLStyleChildren):
(WebCore::Node::registerScopedHTMLStyleChild):
(WebCore::Node::unregisterScopedHTMLStyleChild):
* dom/Node.h:
(Node):
* dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData):
(NodeRareData):
(WebCore::NodeRareData::registerScopedHTMLStyleChild):
(WebCore::NodeRareData::unregisterScopedHTMLStyleChild):
(WebCore::NodeRareData::hasScopedHTMLStyleChild):
(WebCore::NodeRareData::numberOfScopedHTMLStyleChildren):
* dom/ShadowRootList.cpp:
(WebCore::ShadowRootList::willRemove):
(WebCore):
* dom/ShadowRootList.h:
(ShadowRootList):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::registerWithScopingNode):
(WebCore::HTMLStyleElement::unregisterWithScopingNode):
* testing/Internals.cpp:
(WebCore::Internals::numberOfScopedHTMLStyleChildren):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
Source/WebKit2:
numberOfScopedHTMLStyleChildren got moved from Element into Node.
Reviewed by Dimitri Glazkov.
* win/WebKit2.def:
* win/WebKit2CFLite.def:
LayoutTests:
Test registration of <style scoped> as a direct child of a ShadowRoot.
Reviewed by Dimitri Glazkov.
* fast/css/style-scoped/registering-shadowroot-expected.txt: Added.
* fast/css/style-scoped/registering-shadowroot.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/dom/ElementRareData.h b/Source/WebCore/dom/ElementRareData.h
index 5b753cd..ff45783 100644
--- a/Source/WebCore/dom/ElementRareData.h
+++ b/Source/WebCore/dom/ElementRareData.h
@@ -39,13 +39,6 @@
void resetComputedStyle();
-#if ENABLE(STYLE_SCOPED)
- void registerScopedHTMLStyleChild();
- void unregisterScopedHTMLStyleChild();
- bool hasScopedHTMLStyleChild() const;
- size_t numberOfScopedHTMLStyleChildren() const;
-#endif
-
using NodeRareData::needsFocusAppearanceUpdateSoonAfterAttach;
using NodeRareData::setNeedsFocusAppearanceUpdateSoonAfterAttach;
@@ -74,10 +67,6 @@
ShadowRootList m_shadowRootList;
AtomicString m_shadowPseudoId;
-#if ENABLE(STYLE_SCOPED)
- size_t m_numberOfScopedHTMLStyleChildren;
-#endif
-
OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
OwnPtr<ClassList> m_classList;
@@ -94,10 +83,8 @@
}
inline ElementRareData::ElementRareData()
- : m_minimumSizeForResizing(defaultMinimumSizeForResizing())
-#if ENABLE(STYLE_SCOPED)
- , m_numberOfScopedHTMLStyleChildren(0)
-#endif
+ : NodeRareData()
+ , m_minimumSizeForResizing(defaultMinimumSizeForResizing())
, m_styleAffectedByEmpty(false)
#if ENABLE(FULLSCREEN_API)
, m_containsFullScreenElement(false)
@@ -115,29 +102,5 @@
m_computedStyle.clear();
}
-#if ENABLE(STYLE_SCOPED)
-inline void ElementRareData::registerScopedHTMLStyleChild()
-{
- ++m_numberOfScopedHTMLStyleChildren;
-}
-
-inline void ElementRareData::unregisterScopedHTMLStyleChild()
-{
- ASSERT(m_numberOfScopedHTMLStyleChildren > 0);
- if (m_numberOfScopedHTMLStyleChildren > 0)
- --m_numberOfScopedHTMLStyleChildren;
-}
-
-inline bool ElementRareData::hasScopedHTMLStyleChild() const
-{
- return m_numberOfScopedHTMLStyleChildren;
-}
-
-inline size_t ElementRareData::numberOfScopedHTMLStyleChildren() const
-{
- return m_numberOfScopedHTMLStyleChildren;
-}
-#endif
-
}
#endif // ElementRareData_h