summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/NodeRenderingContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/dom/NodeRenderingContext.cpp')
-rw-r--r--Source/WebCore/dom/NodeRenderingContext.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/Source/WebCore/dom/NodeRenderingContext.cpp b/Source/WebCore/dom/NodeRenderingContext.cpp
index cbaba4838..7f70e7c0f 100644
--- a/Source/WebCore/dom/NodeRenderingContext.cpp
+++ b/Source/WebCore/dom/NodeRenderingContext.cpp
@@ -77,6 +77,8 @@ NodeRenderingContext::NodeRenderingContext(Node* node)
m_visualParentShadow = toShadowRoot(parent)->owner();
if (m_visualParentShadow) {
+ m_visualParentShadow->ensureDistribution();
+
if ((m_insertionPoint = m_visualParentShadow->insertionPointFor(m_node))) {
if (m_insertionPoint->shadowRoot()->isUsedForRendering()) {
m_phase = AttachingDistributed;
@@ -91,7 +93,10 @@ NodeRenderingContext::NodeRenderingContext(Node* node)
}
if (isShadowBoundary(parent)) {
- if (!parent->shadowRoot()->isUsedForRendering()) {
+ ShadowRoot* parentShadowRoot = parent->shadowRoot();
+ parentShadowRoot->owner()->ensureDistribution();
+
+ if (!parentShadowRoot->isUsedForRendering()) {
m_phase = AttachingNotDistributed;
m_parentNodeForRenderingAndStyle = parent;
return;
@@ -285,12 +290,6 @@ RenderObject* NodeRenderingContext::parentRenderer() const
return m_parentNodeForRenderingAndStyle ? m_parentNodeForRenderingAndStyle->renderer() : 0;
}
-void NodeRenderingContext::hostChildrenChanged()
-{
- if (m_phase == AttachingNotDistributed && m_visualParentShadow)
- m_visualParentShadow->hostChildrenChanged();
-}
-
bool NodeRenderingContext::shouldCreateRenderer() const
{
ASSERT(m_phase != Calculating);
@@ -366,9 +365,6 @@ void NodeRendererFactory::createRendererIfNeeded()
ASSERT(!node->renderer());
ASSERT(document->shouldCreateRenderers());
- // FIXME: This side effect should be visible from attach() code.
- m_context.hostChildrenChanged();
-
if (!m_context.shouldCreateRenderer())
return;