Index: Source/core/dom/Text.cpp |
diff --git a/Source/core/dom/Text.cpp b/Source/core/dom/Text.cpp |
index 2426009c6edb92702b679096b4140bc7abb6aa20..63211b8c42749958bac027082893064c5baa02d7 100644 |
--- a/Source/core/dom/Text.cpp |
+++ b/Source/core/dom/Text.cpp |
@@ -239,6 +239,9 @@ PassRefPtrWillBeRawPtr<Node> Text::cloneNode(bool /*deep*/) |
bool Text::textRendererIsNeeded(const RenderStyle& style, const RenderObject& parent) |
{ |
+ if (!parent.canHaveChildren()) |
+ return false; |
+ |
if (isEditingText()) |
return true; |
@@ -304,7 +307,12 @@ RenderText* Text::createTextRenderer(RenderStyle* style) |
void Text::attach(const AttachContext& context) |
{ |
- RenderTreeBuilder(this, context.resolvedStyle).createRendererForTextIfNeeded(); |
+ if (ContainerNode* renderingParent = NodeRenderingTraversal::parent(this)) { |
+ if (RenderObject* parentRenderer = renderingParent->renderer()) { |
+ if (textRendererIsNeeded(*parentRenderer->style(), *parentRenderer)) |
+ RenderTreeBuilderForText(this, parentRenderer).createRenderer(); |
+ } |
+ } |
CharacterData::attach(context); |
} |