summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-06 11:45:16 +0100
committerSteve Block <steveblock@google.com>2011-05-12 13:44:10 +0100
commitcad810f21b803229eb11403f9209855525a25d57 (patch)
tree29a6fd0279be608e0fe9ffe9841f722f0f4e4269 /WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp
parent121b0cf4517156d0ac5111caf9830c51b69bae8f (diff)
downloadexternal_webkit-cad810f21b803229eb11403f9209855525a25d57.zip
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.gz
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.bz2
Merge WebKit at r75315: Initial merge by git.
Change-Id: I570314b346ce101c935ed22a626b48c2af266b84
Diffstat (limited to 'WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp')
-rw-r--r--WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp b/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp
deleted file mode 100644
index c5430ed..0000000
--- a/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- aint with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "RenderSVGShadowTreeRootContainer.h"
-
-#include "MouseEvent.h"
-#include "SVGShadowTreeElements.h"
-#include "SVGUseElement.h"
-
-namespace WebCore {
-
-RenderSVGShadowTreeRootContainer::RenderSVGShadowTreeRootContainer(SVGUseElement* node)
- : RenderSVGTransformableContainer(node)
- , m_recreateTree(false)
-{
-}
-
-RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer()
-{
- if (m_shadowRoot && m_shadowRoot->attached()) {
- m_shadowRoot->detach();
- m_shadowRoot->clearShadowHost();
- }
-}
-
-void RenderSVGShadowTreeRootContainer::updateStyle(Node::StyleChange change)
-{
- if (m_shadowRoot && m_shadowRoot->attached())
- m_shadowRoot->recalcStyle(change);
-}
-
-void RenderSVGShadowTreeRootContainer::updateFromElement()
-{
- bool hadExistingTree = m_shadowRoot;
-
- SVGUseElement* useElement = static_cast<SVGUseElement*>(node());
- if (!m_shadowRoot) {
- ASSERT(!m_recreateTree);
- m_shadowRoot = SVGShadowTreeRootElement::create(document(), useElement);
- useElement->buildPendingResource();
- }
-
- ASSERT(m_shadowRoot->shadowParentNode() == useElement);
-
- bool shouldRecreateTree = m_recreateTree;
- if (m_recreateTree) {
- ASSERT(hadExistingTree);
-
- if (m_shadowRoot->attached())
- m_shadowRoot->detach();
-
- m_shadowRoot->removeAllChildren();
- m_recreateTree = false;
- }
-
- // Only rebuild the shadow tree, if we a) never had a tree or b) we were specifically asked to do so
- // If the use element is a pending resource, and a) or b) is true, do nothing, and wait for the use
- // element to be asked to buildPendingResource(), this will call us again, with m_recreateTrue=true.
- if ((shouldRecreateTree || !hadExistingTree) && !useElement->isPendingResource()) {
- useElement->buildShadowAndInstanceTree(m_shadowRoot.get());
-
- // Attach shadow root element
- m_shadowRoot->attachElement(style(), renderArena());
-
- // Attach subtree, as if it was a regular non-shadow tree
- for (Node* child = m_shadowRoot->firstChild(); child; child = child->nextSibling())
- child->attach();
- }
-
- ASSERT(!m_recreateTree);
- RenderSVGTransformableContainer::updateFromElement();
-}
-
-void RenderSVGShadowTreeRootContainer::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
- RenderSVGTransformableContainer::styleDidChange(diff, oldStyle);
-
- if (RenderObject* shadowRootRenderer = m_shadowRoot ? m_shadowRoot->renderer() : 0)
- shadowRootRenderer->setStyle(style());
-}
-
-Node* RenderSVGShadowTreeRootContainer::rootElement() const
-{
- return m_shadowRoot.get();
-}
-
-}
-
-#endif