| Index: Source/core/editing/markup.cpp
|
| diff --git a/Source/core/editing/markup.cpp b/Source/core/editing/markup.cpp
|
| index ce7484641725632a31205dbabf8cb6e86c49a584..608698f458be04a608ec0366420844174105f6aa 100644
|
| --- a/Source/core/editing/markup.cpp
|
| +++ b/Source/core/editing/markup.cpp
|
| @@ -369,7 +369,7 @@ Node* StyledMarkupAccumulator::traverseNodesForSerialization(Node* startNode, No
|
| appendStartTag(*n);
|
|
|
| // If node has no children, close the tag now.
|
| - if (!n->childNodeCount()) {
|
| + if (!n->hasChildNodes()) {
|
| if (shouldEmit)
|
| appendEndTag(*n);
|
| lastClosed = n;
|
| @@ -782,15 +782,19 @@ static void fillContainerFromString(ContainerNode* paragraph, const String& stri
|
| }
|
| }
|
|
|
| -bool isPlainTextMarkup(Node *node)
|
| +bool isPlainTextMarkup(Node* node)
|
| {
|
| - if (!node->isElementNode() || !node->hasTagName(divTag) || toElement(node)->hasAttributes())
|
| + if (!node->isElementNode())
|
| return false;
|
|
|
| - if (node->childNodeCount() == 1 && (node->firstChild()->isTextNode() || (node->firstChild()->firstChild())))
|
| + Element* element = toElement(node);
|
| + if (!element->hasTagName(divTag) || !element->hasAttributes())
|
| + return false;
|
| +
|
| + if (element->hasOneChild() && (element->firstChild()->isTextNode() || (element->firstChild()->firstChild())))
|
| return true;
|
|
|
| - return (node->childNodeCount() == 2 && isTabSpanTextNode(node->firstChild()->firstChild()) && node->firstChild()->nextSibling()->isTextNode());
|
| + return element->hasChildCount(2) && isTabSpanTextNode(element->firstChild()->firstChild()) && element->lastChild()->isTextNode();
|
| }
|
|
|
| static bool shouldPreserveNewline(const Range& range)
|
|
|